实体框架 - 相关的 ICollection 被具体化为 HashSet

2024-06-18

我在我的项目中使用实体框架 POCO + 代理 + 延迟加载。今天我很惊讶地看到这个班级Transaction有其相关合集Rows物化为HashSet(代替EntityCollection)。我需要EntityCollection用于跟踪集合中的更改。

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

然而,其他实体类将其相关集合具体化为EntityCollection.

我正在加载Transaction通过ObjectQuery,所以它应该在上下文中。该对象的代理也被创建。

谁能告诉 - 实体框架如何决定使用什么 - HashSet 还是 EntityCollection?为什么有些东西会变成HashSet?


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

  • POCO类是公开的、非密封的、非抽象的
  • All持久化属性(带有 getter 和 setter)被标记为虚拟
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 - 相关的 ICollection 被具体化为 HashSet 的相关文章

随机推荐