0

我正在尝试使用 CodeFirst 将我的应用程序连接到 MySql,但我遇到了一个错误,这让我对 Context ConnectionString 感到疯狂。

  • 实体框架 4.3.1
  • MySql 连接器 6.6.3

网络配置:

   <connectionStrings>
     <add name="PersonalContext" connectionString="server=localhost;UserId=root;password=1234;database=school;" providerName="MySql.Data.MySqlClient" />
   </connectionStrings>


  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <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.6.3.0, Culture=neutral, PublicKeyToken=852c9eb6525c1b53" />
    </DbProviderFactories>
  </system.data>

控制器:

var ctx = new SchoolContext();
ctx.Database.Initialize(true);

我想知道为什么 ctx.Connection.Connectionstring 仍然使用 SQLEXPRESS

“数据源=.\SQLEXPRESS;初始目录=MysqlTesting.Controllers.SchoolContext;集成安全=True;MultipleActiveResultSets=True;应用程序名称=EntityFrameworkMUE”

我是 entityFramework 的新手,我想知道我在 web.config 上做错了什么。

4

1 回答 1

1

The name of your connection string either needs to match the name of the context class, or you need to tell your context class which connection string to use:

class SchoolContext
{
    public SchoolContext()
        : base("Name=PersonalContext")
    {
    }

    // DbSet properties here
}
于 2012-10-08T16:13:34.033 回答