首先是 EF6 代码的问题,然后是 ASP.NET MVC5 中的 Mysql

Problem with EF6-code first and Mysql in ASP.NET MVC5

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

问题:未创建 _migrationhistory table 并且未分配 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>

自动创建我的控制器、视图...(脚手架)并 运行ning 项目后,一切看起来都很好,但在数据库中情况有所不同。

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

The model backing the 'TestContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?>LinkId=238269)

很高兴地说,在 windows 表单应用程序中,使用上面的迁移代码,我使用代码优先创建数据库没有问题,tables 和 运行程序。但是在 ASP.NET MVC5 中使用上面的代码进行迁移后,项目并没有 运行 正如你看到上面的错误

已解决- 我尝试了 20 多次,我明白在 运行 程序之前,我应该 enable-migration/add migration/update-database- 我不知道发生了什么,但在 [= 之后我没有看到这个错误15=] 项目。

The model backing the 'TestContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)