前一段时间在学习ASP.NET MVC,由于没有安装SqlServer选择了比较小型的mysql数据库,在使用CodeFirst更新数据库时出现了错误,一度不知道怎么回事,在网上查找了相关资料才知道原因是因为ASP.NET默认更新数据库时使用的是SqlServer的框架,所以用mysql时就出现了无法更新的现象。
首先说一下怎么开启迁移数据库,工具->NuGet包管理器->程序包管理控制台
在程序包管理控制台中输入Enable-Migrations,如果有多个Context需要选择。
选择其中一个,然后修改你的模型,按Ctrl+Shift+B就行编译。编译之后在程序包管理控制台中输入Add-Migration AddStudent(这里的AddStudent是名称,可以随意)。这时在你的项目资源管理器里面就会多两个文件,一个是Migrations的配置文件,另一个就是更新数据库所执行操作的文件。
如果你是mysql数据库打开AddStuden这个文件如下
public override void Up()
{
AddColumn("dbo.Students", "UserName", c => c.String(unicode: false));
}
public override void Down()
{
AddColumn("dbo.Students", "UsreName", c => c.String(unicode: false));
}
上面是当数据模型更改之后自动生成的更新数据库的代码,而此时我使用的是mysql并不是sqlserver,所以只需要将表的前缀(dbo.)删除就可以了。dbo是sqlserver所特有的。
修改之后在程序包管理控制台中输入update-database即可更新数据库。