Che*_*hev 5 .net c# asp.net entity-framework entity-framework-5
我知道实体框架中的导航属性必须在它们前面有虚拟关键字,否则EF不能做它的导航属性魔术.但是将虚拟关键字放在其他属性前面有什么影响呢?我最近看到一个例子,其中实体上的每个属性都是用virtual关键字声明的.如果我这样做,EF 5是否真的懒得加载每个属性,或者我错过了一些关于它如何工作的东西?
使用 virtual 关键字作为导航属性对于延迟加载是必要的。在所有映射的属性上使用 virtual 关键字对于动态更改跟踪是必要的。文档中描述了这两个选项的所有要求。
在 EF 4.0 中,推荐使用动态更改跟踪方法,因为 POCO T4 Generator 使用了虚拟属性,但由于 EF 4.1快照更改跟踪被建议作为初始选项,仅当快照更改跟踪成为性能问题的受害者时才转向动态更改跟踪。