实体框架 - 相关的ICollection实现了HashSet

时间:2010-09-02 07:40:10

标签: entity-framework entity-framework-4 poco hashset entitycollection

我在项目中使用EntityFramework POCO +代理+延迟加载。今天,我非常惊讶地看到班级Transaction将其相关集合Rows具体化为HashSet(而不是EntityCollection)。我需要EntityCollection来跟踪集合中的更改。

public class Transaction
{
    public virtual ICollection<TransactionRow> Rows { get; set; }
}

但是,其他实体类的相关集合已实现为EntityCollection

我正在加载TransactionObjectQuery,因此它应该在上下文中。还创建了对象的代理。

任何人都可以告诉 - 实体框架如何决定使用什么 - HashSet或EntityCollection?为什么有些东西会成为HashSets?

1 个答案:

答案 0 :(得分:2)

只有满足以下两个条件时才会创建更改跟踪代理:

  • POCO课程是公开的,非密封的和非抽象的
  • 所有持久性属性(使用getter和setter)都标记为虚拟