延迟加载,更改跟踪,虚拟关键字和主键属性

时间:2012-09-18 13:24:42

标签: .net entity-framework

我应该将virtual关键字添加到我的主键属性吗?

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

1 个答案:

答案 0 :(得分:1)

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

  • 课程必须公开,不得密封。
  • 所有属性都必须包含公共/受保护的虚拟getter和setter。
  • 必须将集合导航属性声明为ICollection。它们不能是IList,List,HashSet等。

请参阅此blog post by a member of the EF team