我知道Entity Framework中的导航属性必须在它们前面有虚拟关键字,否则EF无法做到它的导航属性魔术。但是将虚拟关键字放在其他属性前面有什么影响呢?我最近看到一个例子,其中实体上的每个属性都是用virtual关键字声明的。如果我这样做,EF 5是否真的懒得加载每个属性,或者我错过了一些关于它是如何工作的东西?
答案 0 :(得分:2)
延迟加载需要使用虚拟关键字作为导航属性。在动态更改跟踪中,必须在所有映射属性上使用虚拟关键字。所有要求均为described in documentation。
在EF 4.0中,推荐采用动态变化跟踪方法,因为POCO T4生成器使用了虚拟属性,但由于EF 4.1 snapshot change tracking is recommended as initial option只有当变形跟踪成为性能问题的受害者时才转向动态变化跟踪。