我已经搜索过,但在这个主题上找不到多少。有没有人看过DBContext的简明“操作顺序”,包括实例化,验证,保存等等?我主要是好奇,因为在使用我的EF 4.3 Code First上下文的LINQPad时,它会在我自己的任何一个之前运行两个查询。一个与迁移历史有关,我理解是因为我们正在使用EF迁移,它正在尝试查看是否需要自动更新,另一个是EdmMetadata表,我不明白,因为它听起来像是如果我们使用EFMigrations,则没有必要。
我对为什么调用一个查询缺乏了解让我想知道DBContext的生命周期的其他部分是否我不知道可能对理解/覆盖有用。提前谢谢!
答案 0 :(得分:0)
EdmMetadata的查询是出于兼容性原因。 EF 4.1没有迁移。为了能够确定模型是否已更改,使用了EdmMetadata表。假设您使用EF 4.1应用程序开发了一个应用程序,并且您已移至EF 4.3但未更改模型。在这种情况下,由于模型未更改,因此无需运行迁移,抛出异常或触摸数据库。对EdmMetadata表的调用只是为了能够优雅地处理这种情况,并避免在不需要时抛出或触摸数据库。 我不认为EF 4.3中有任何其他此类更改。