不为Entity Framework(v4)实体标记虚拟导航属性有什么影响?
如果我不使用延迟加载,但忽略了正确的加载,那么在访问(未加载)属性时会发生什么?
是否会在延迟加载之外产生任何其他影响,或者是需要虚拟导航属性的主要功能?
答案 0 :(得分:7)
有两种效果。一个是延迟加载,如果属性不是virtual
,则无法正常工作。但延迟加载并不总是你想要的。
第二个是变化检测。如果您正在使用纯POCO或使用代理但未创建属性virtual
,则更改检测变得更加复杂。
您可以详细了解更改检测here。
答案 1 :(得分:0)
如果您想知道POCO对象是否支持延迟加载,那么我想您很高兴知道您也可以通过POCO获得延迟加载。
为了获得POCO实体的延迟加载支持,您需要做两件事:
声明要以懒惰方式加载的属性。这些属性可以是实现ICollection的任何集合类型,也可以是表示1 / 0..1关系的引用。
在上下文中启用延迟加载