我用database first生成了Model类型,第一次正常显示数据,然后我又利用ef自动生成了一个模型,将这个模型添加到了DbContext类中,然后页面提示:模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。
1.每次修改DbContext类,都需要做数据迁移吗? 我上面的操作其实并没有改变模型的属性?也不属于code first 模式,为什么还要数据迁移?
2.有没有配置为不用每次做数据迁移的?我可以自己做操作?每次页面不能访问,都要运行几个命令,很麻烦,而且自带的很不好用?
3.有没有比这简便的办法?
你讲的不太清楚,我也就不按照你的回答,我只说在 Code first 模式下通过代码(注意不是命令行),如何实现迁移,以及如何控制迁移。
首先你要实现以下几个类: DbContext,MigrateDatabaseToLatestVersion<T1,T2>,DbMigrationsConfiguration<T>。
DbMigrationsConfiguration<T> 的 AutomaticMigrationsEnabled 可以控制是否启用自动迁移功能,AutomaticMigrationDataLossAllowed 可以控制启动自动迁移后,是否允许数据丢失行为发生。
当你实现了这些类后,你只需要运行代码即可,不需要使用命令行。
如果使用DataBase Frist 操作该如何操作呢,因为我发现使用database first 在dbcontext里面 新增了model类型,每次都让我数据迁移,该如何操作呢来避免这些繁琐的步骤?具体实现是如何实现的?
@jquery09: 据我所知,Db First 不支持迁移,你应该先学习下 Db First,Model First,Code-First 三者的区别。