配置使用EF6.0常见的一些问题及解决方案

发表于:2016-1-26 10:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:井传红    来源:51Testing软件测试网采编

  前言
  最近做了个winform小项目,为方便快速开发,后台框架使用了ef6.0+sqlserver2008架构,遇到各种问题,真是伤脑筋。现将遇到问题和解决方案写下来,方便查阅
  提示未注册,找不到驱动程序
  No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file.
  这个问题比较坑,我根据上面的提示,跑到配置文件去查看,看有没有entutyFramework节点,是否注册驱动。结果按照网上的解决方案把配置文件贴上去了还是报错,然后再查看EntityFramework.SqlServer.dll是否已经引用到数据访问层类库中,也在。这下就懵逼了,到底是什么情况,网上各种搜,比如把EntityFramework.SqlServer.dll的赋值到本地属性设为True后还是没有用,折腾了个把小时,最后突然看了一眼bin\Debug目录,发现只有一个EntityFramework.dll文件,没有EntityFramework.SqlServer.dll,我就瞬间释然了,原来是这样。。。
  解决方案:
  1.检查是否引入EntityFramework.dll 和EntityFramework.SqlServer.dll
  2.检查是否设为复制到本地属性为True
  3.检查配置文件是否注册驱动
  如我的是sqlserver数据库:
  <providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
  如果是mysql
  <providers>
  <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
  </providers>
  将上面这段代码放到<entityFramework>节点下面就可以了,并且要引入几个dll
  4.查看编译后的目录中是否有这2个dll,如果没有,手动拷贝进去
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号