虚拟关键字对实体框架 5 中的实体属性有何影响



我知道实体框架中的导航属性前面必须有 virtual 关键字,否则 EF 无法实现它的导航属性魔术。但是,将虚拟关键字放在其他属性的前面有什么影响呢?我最近看到一个例子,其中实体上的每个属性都是用 virtual 关键字声明的。如果我这样做,EF 5 是否真的会延迟加载每个属性,或者我是否缺少有关其工作原理的信息?

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

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

最新更新