我遇到了一组错误,但我不知道如何协调。我正在使用 EntityFramework5,因为它是适用于 MySql.Data 和 MySql.Data.Entity 的最新受支持版本的 EF。抛出错误的是 App.Config。这是我一直在尝试但没有解决方案的两种替代方法。
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
</providers>
</entityFramework>
在这个例子中我得到了错误: {"Unrecognized element 'providers'. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 16)"}
据我了解,EF5 不支持提供程序,因此我尝试使用它。
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
<contexts>
<context type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
</contexts>
</entityFramework>
在这个例子中我得到了错误: {"Required attribute 'invariant' not found. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 34)"}
我尝试放入不变量并收到警告不允许使用“invariantName”属性(也不是不变量)。
如果我输入不变量,它会得到这个错误: {"Required attribute 'invariant' not found. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 34)"}
所以我好像出现了一种情况,一个不能用,但是另一个不支持不变类型。我不知道如何解决这个问题。我已经能够连接到数据库并且连接字符串正常工作。我只是使用 Entity Framework 搜索或修改任何数据。
我尝试添加这个,但也没有帮助。
<system.data>
<DbProviderFactories>
<remove name="MySQL Data Provider"/>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
编辑 1:
第 16 行是 <providers>
.
第 34 行是 <DbProviderFactories>
最佳答案
显然我需要的是
<clear />
代替
<remove .. />
关于c# - MySQL数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20041772/