2012-09-18 34 views
0

我应该将virtual关键字添加到我的主键属性中吗?延迟加载,更改跟踪,虚拟关键字和主键属性

在阅读了关于延迟加载,更改跟踪和虚拟关键字之后,我意识到我几乎应该将所有属性都标记为虚拟。虽然我不太确定我的ID属性,因为加载没有ID的实体是没有意义的,但它仅用于更有效的更改跟踪。

回答

1

是否需要更改跟踪代理?如果是这样,您必须在所有属性上都有虚拟关键字。

  • 该类必须是公开的而不是密封的。
  • 所有属性必须具有公共/受保护的虚拟获取者和设置者。
  • 集合导航属性必须声明为ICollection。它们不能是IList,List,HashSet等。

看到这个blog post by a member of the EF team