外键与独立关系 - 实体框架5有改进吗?

zam*_*6ak 6 c# entity-framework ef-code-first

在使用Entity Framework时,我已经阅读几篇关于外键与独立关系概念的文章和问题.我仍然不能100%确定要走哪条路......我不希望通过拥有一个将在FK关系中使用的属性来"污染"我的域名POCO,因为我已经有了"有一个"的属性引用宾语.

我的问题是(看着你@EFTeam,@ Ladislav Mrnka)

  1. 在即将到来的Entity Framework v5中,这个主题有什么改进吗?
  2. 如果我使用FK而不是独立关联(特别是代码优先),是否有更多的优势?

cyn*_*nic 5

如果您有一个大型模型,那么您无论如何都必然会"污染"您的域对象(或概念模型).对于具有FK映射关联的模型,"视图生成"的成本 - 执行查询或保存更改所必需的EF处理管道中的一个阶段,可以移动到构建时间("预生成视图") - 是与具有独立关联的模型相比较低.这很重要,因为执行它的时间量对于小型模型来说可能不明显,但它会变得非常快,特别是当有关联映射到可以为空的外键(到-0..1,或者带有派生实体的to-1)时在TPH映射的层次结构中).在官方的EF5性能考虑文档中,非常大的模型的视图生成时间的示例差异在"超过一个月然后我们放弃"(具有独立关联)和104分钟(具有FK映射关联)之间给出.在我的情况下(几百个高度连接的实体)它在25分钟到40秒之间.EF5中的情况与之前版本中的情况相同.