我正在使用实体框架v4.1中的代码优先模式。我遇到的一件事看起来真的很奇怪,每当您在模型中进行任何更改时,数据库都会掉落并创建新的。这是非常不整洁的,因为每次掉落和重新创建数据库不是理想的解决方案。我所有的测试数据和一切都丢失了。我知道有一种名为种子的方法,您可以将测试数据记录插入其中。但是,可能有100个测试记录,并且将每个记录都放入种子方法中是不可行的。还有其他选择吗?我根本不会使用代码优先,但必须在项目中使用它。

有帮助吗?

解决方案

没有当前没有其他方法,EF本身可能永远不会支持任何东西,而不是掉落 /重新创建。 ADO.NET团队选择的方式是使用单独的工具进行数据库升级 迁移. 。迁移目前仅作为CTP =它们不适合实际使用,而是用于测试和收集反馈给EF团队。

作为解决方法,您可以拥有外部数据总体脚本并从种子中调用它 - 维护要容易得多。

其他提示

您可以设置EF,只能尝试修改数据库,如果它尚不存在。

Database.SetInitializer<YourDataContext>(new CreateDatabaseIfNotExists<YourDataContext>());
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top