我遇到了一系列错误,不知道该如何解决。 我正在使用EntityFramework5,因为它是MySql.Data和MySql.Data.Entity支持的最新版本。 报错出现在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不支持providers,因此我尝试使用如下方法。
<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)"}
所以看起来我有一个不能用一个,但另一个不支持不变类型的情况。我不知道如何解决这个问题。我的连接字符串可以连接到数据库,但我无法使用实体框架搜索或修改任何数据。
我尝试添加以下内容,但也没有帮助。
<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>
。