1

通过删除 EF 4.3 中的 EdmMetadata 表,DropCreateDatabaseIfModelChanges似乎不再有效。可以?

或者

有没有办法像我在 EF 4.2 的 SEED 方法中那样声明初始化程序?

4

1 回答 1

3

EdmMetadata在 EF 4.3 Code First 模型中已过时,而是使用_MigrationHistory表来检查模型和数据库之间的兼容性。

(请注意,如果可能,将 _MigrationHistory 表设为系统表。这意味着要查看它,您可能需要在 SQL Management Studio 或您的首选工具中展开“系统表”。)

在 EF 4.3 中,当 DbContext 与 Code First 方法一起使用时,会Database.Create尝试使用 Code First 迁移来创建数据库并执行 DDL。Database.Create为您执行初始自动迁移。作为此过程的一部分,迁移将创建一个名为的表_MigrationHistory,并在该表中插入一行,其中包含 Code First 模型的压缩版本。DropCreateDatabaseIfModelChanges初始化器使用该方法通过检查_MigrationHistoryDatabase.CompatibleWithModel来确定 Code First 模型是否与用于创建数据库的模型匹配。

http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/

于 2012-04-09T11:55:26.840 回答