问题描述
我在我的APS.NET4.5 Web应用程序中使用Entity Framework6。
运行以下命令时:
using (var db = new booksEnteties())
{
var books = from b in db.books
select b;
}
我收到以下错误:
在System.Configuration.dll中出现‘System.Configuration.ConfigurationErrorsException’类型的异常,但未在用户代码中处理
在详细信息中:
无法识别的属性‘name’。
它将我指向web.config行111:
<remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" />
当我删除此行并尝试再次运行时,出现以下错误:
为system创建配置节处理程序时出错。data:列‘InariantName’被约束为唯一。值"MySql.Data.MySqlClient"已存在。我假设这与web.config中的Entity Framework6配置有关。
推荐答案
正如Tim Tang所说,如果您使用的是Entity Framework6,则需要使用Connector/Net 6.8.x。 您还应该将对MySql.Data.Entity.EF6的引用添加到您的项目中。
然后,对于Web.config文件,如下所示:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"></remove>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
有关更多详细信息,请查看this。