我在我的项目中使用实体框架 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(使用前将#替换为@)