我正在使用MVC中的Entity Framework开发一个模型第一种方法的项目。几天后,我需要为现有模型添加一些属性。后来当我尝试构建解决方案时,它给了我以下错误:
模特已经改变。
所以,我用谷歌搜索它找到了一个解决方案:
Database.SetInitializer<ClubmansGuideDB>(new DropCreateDatabaseIfModelChanges<ClubmansGuideDB>());
它工作正常,但实体框架如何维护特定模型关联表中的现有数据?有人可以解释一下吗?
答案 0 :(得分:0)
您不应该使用此Initializes,而是使用数据库迁移,它将生成一个脚本,仅使用您添加到模型中的少数属性来更改数据库。
你可以这样做:
1-从工具菜单打开NuGet包管理器控制台 - &gt; Nu获取包管理器
2-运行Enable-Migrations
命令
3-运行Add-Migration Initial
命令,如果这是您的第一次,这将添加带代码的迁移以创建整个数据库。
4-如果您已经进行了迁移,请运行add-migration -Name somename
5-运行命令update-database -script
这将生成一个数据库脚本来更改数据库。
使用步骤#5中的脚本并针对数据库运行它,它只会执行所需的修改