MySQL的实体框架defaultConnectionFactory

jgi*_*ich 2 .net c# mysql entity-framework

当我将connectionString名称指定为基础构造函数的参数时,以下配置正常工作.因为我希望能够到后来更改默认的供应商无需重新编译,我想将其设置为我app.config而不是,但我不知道什么是,提供一种typedefaultConnectionFactory.

  <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.

jgi*_*ich 8

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)