5

我已经搜索过,但没有找到关于这个主题的太多内容。有没有人看到 DBContext 的简洁“操作顺序”,包括实例化、验证、保存等内容?我主要是好奇,因为在我的 EF 4.3 Code First 上下文中使用 LINQPad 时,它在我自己的任何查询之前运行两个查询。一个与我理解的迁移历史有关,因为我们正在使用 EF Migrations 并且它试图查看它是否需要自动更新,另一个是我不理解的 EdmMetadata 表,因为它听起来像如果我们使用 EFMigrations,则不需要。

我对为什么调用一个查询缺乏了解,这让我想知道 DBContext 生命周期的其他部分是否有我不知道的可能有助于理解/覆盖。提前致谢!

4

1 回答 1

0

EdmMetadata 的查询是出于兼容性原因。EF 4.1 没有迁移。为了能够确定模型是否更改,使用了 EdmMetadata 表。假设您使用 EF 4.1 应用程序开发了一个应用程序,并且您移至 EF 4.3,但您没有更改模型。在这种情况下,由于您的模型没有更改,因此无需运行迁移、抛出异常或访问数据库。对 EdmMetadata 表的调用只是为了能够优雅地处理这种情况,并避免在不需要时抛出或触摸数据库。我认为 EF 4.3 中没有任何其他此类更改。

于 2012-02-24T23:44:49.763 回答