我在我的项目中使用 EntityFramework POCO + 代理 + 延迟加载。今天我很惊讶地看到类(class)Transaction
有其相关藏品Rows
实体化为HashSet
(而不是 EntityCollection
)。我需要EntityCollection
用于跟踪集合中的更改。
public class Transaction
{
public virtual ICollection<TransactionRow> Rows { get; set; }
}
然而,其他实体类将其相关集合具体化为
EntityCollection
.我正在加载
Transaction
通过 ObjectQuery
,所以它应该在上下文中。对象的代理也被创建。谁能告诉 - Entity Framework 如何决定使用什么 - HashSet 或 EntityCollection?为什么有些东西变成了 HashSets?
最佳答案
仅当满足这两个条件时才会创建更改跟踪代理:
关于entity-framework - Entity Framework - 相关的 ICollection 被物化为 HashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624701/