jgi*_*ich 2 .net c# mysql entity-framework
当我将connectionString名称指定为基础构造函数的参数时,以下配置正常工作.因为我希望能够到后来更改默认的供应商无需重新编译,我想将其设置为我app.config而不是,但我不知道什么是,提供一种type供defaultConnectionFactory.
<connectionStrings>
<add name="MySQL" providerName="MySql.Data.MySqlClient" connectionString="SERVER=localhost;DATABASE=abc;UID=root;PASSWORD=;" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, EntityFramework"></defaultConnectionFactory>
<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>
Run Code Online (Sandbox Code Playgroud)
例外:
无法将Database.DefaultConnectionFactory设置为应用程序配置中指定的"MySql.Data.Entity.MySqlConnectionFactory,EntityFramework"类型的实例.请参阅内部异常了解详细信
内部异常(已翻译,VS设置为英语但某些消息仍为我的语言):
无法在程序集"EntityFramework"中加载"MySql.Data.Entity.MySqlConnectionFactory"类型
该文件指出,大会名称冒号后如下,因此,我也试过MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6,给我这样的例外:
初始化字符串的格式不符合从索引0开始的规范.
我正在使用EF6,MySql.Data和MySql.Data.Entity.EF6 6.8.3.0.
nameconnectionString 的属性必须与您的上下文相同.这很好用:
<connectionStrings>
<add name="NAMEOFYOURCONTEXT" providerName="MySql.Data.MySqlClient" connectionString="Server=localhost;Database=abc;Uid=root;Pwd='';" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"></defaultConnectionFactory>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)