我正在研究实体框架中的模型优先方法。我发现每当从模型中重新生成数据库时,所有数据都会被清除。模型优先真的是一种有用的方法还是有办法解决这个问题
问问题
605 次
4 回答
1
Entity Framework 删除您的数据库并从头开始重新创建它。这就是它的工作方式。Microsoft 正在制定允许您迁移更改的迁移策略,但这要等到下一个主要版本才能准备好。
有一些第三方工具试图解决这个问题,但我不会太依赖它们。
于 2011-11-11T06:13:08.737 回答
0
每当您更新模型并运行自动生成的 SQL 脚本时,您都可以手动为数据库播种以获取数据。播种在 Model-First 中的工作方式与在 Code-First 中的工作方式不同,因此经常谈论且有用的 DropAndCreateDatabaseIfModelChanges 方法效果不佳。最简单的解决方法是通过初始化自己手动播种。
var db = new MyDbContext();
db.Database.Initialize(true);
于 2013-04-10T19:07:24.157 回答
0
处理此问题的方法之一是播种数据,即在 EF 创建数据库后使用一些测试数据填充数据库。请参阅http://binuity.com/blog/2011/03/28/ef4-seeding-data-on-each-dropcreatedatabaseifmodelchanges/
另一种方法是使用工具来尝试更新数据库而不是重新创建它。
于 2011-11-11T05:13:14.140 回答