5

我知道实体框架中的导航属性必须在它们前面有 virtual 关键字,否则 EF 无法做到导航属性的魔力。但是把 virtual 关键字放在其他属性前面有什么效果呢?我最近看到一个例子,其中实体上的每个属性都用 virtual 关键字声明。如果我这样做,EF 5 真的会延迟加载每个属性,还是我错过了它的工作原理?

4

1 回答 1

2

延迟加载需要对导航属性使用 virtual 关键字。在所有映射属性上使用虚拟关键字对于动态更改跟踪是必要的。两个选项的所有要求都在文档中进行了描述

在 EF 4.0 中建议使用动态更改跟踪方法,因为 POCO T4 生成器使用虚拟属性,但由于 EF 4.1快照更改跟踪被推荐作为初始选项,仅当快照更改跟踪是性能问题的受害者时才转换为动态更改跟踪。

于 2012-10-09T10:41:19.550 回答