EF6代码优先和ASP.NET MVC5中的Mysql出现问题

时间:2020-04-15 06:16:50

标签: mysql asp.net-mvc ef-code-first

我想使用EF6和Mysql创建一个简单的代码优先的ASP.NET MVC5项目,但是在将合适的Nupkg添加到我的项目并编辑了web.config,然后脚手架控制器,视图...之后,创建的数据库具有以下是两个问题: enter image description here

问题:未创建_migrationhistory表,并且未分配PK列! 这是我的web.config:

 <connectionStrings>
    <remove name="LocalMySqlServer" />
    <add name="LocalMySqlServer" connectionString="" providerName="MySql.Data.MySqlClient" />
    <add name="TestContext" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost;userid=root;password=***;database=Test_DB;Integrated Security=True;CharSet=utf8 ;" />
  </connectionStrings>

  <entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    </providers>
  </entityFramework>

在创建完我的控制器,视图,...(自动脚手架)并运行该项目之后,一切看起来都不错,但是在数据库中却有所不同。

在一个新项目中,脚手架(创建自动控制器,视图,上下文等)之后,我没有运行该程序!相反,我做了: enable-migrations,add-migration createDB,update-database,结果是很好地创建了表,并且也创建了__migrationhistory,但是在那之后,当我运行该项目时,它说:

自创建数据库以来,支持“ TestContext”上下文的模型已更改。考虑使用代码优先迁移来更新数据库(http://go.microsoft.com/fwlink/?> LinkId = 238269)

可以说在Windows窗体应用程序中,使用上述迁移代码,我首先使用代码来创建数据库,表和运行程序没有问题。但是在使用上述代码进行迁移之后,在ASP.NET MVC5中,该项目无法运行,因为您看到上面的错误

1 个答案:

答案 0 :(得分:0)

已解决- 我尝试了20次以上,并且我知道在运行程序之前,我应该启用迁移/添加迁移/更新数据库,但我不知道发生了什么,但是在运行项目后再也看不到此错误。

自创建数据库以来,支持“ TestContext”上下文的模型已更改。考虑使用代码优先迁移来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269