我正试图围绕 Entity Framework 4 中存在的所有类。(到目前为止)我唯一感到困惑的是 EntitySet。从我的 .edmx 文件生成的 C# 代码中从未提及实体集,仅在 XML 文件(.csdl、.msl、.ssdl)中提及。
ObjectSet 似乎是 EntitySet 的包装器(尽管它也将 EntitySet 作为公共属性公开。)是否有任何情况下我将直接使用 EntitySets?
我正试图围绕 Entity Framework 4 中存在的所有类。(到目前为止)我唯一感到困惑的是 EntitySet。从我的 .edmx 文件生成的 C# 代码中从未提及实体集,仅在 XML 文件(.csdl、.msl、.ssdl)中提及。
ObjectSet 似乎是 EntitySet 的包装器(尽管它也将 EntitySet 作为公共属性公开。)是否有任何情况下我将直接使用 EntitySets?
来自MSDN:
给定类型及其子类型的实体的逻辑容器。实体集映射到数据库中的表。
本质上,它是 CSDL 谈话——关于对象映射到哪些实体“集”。
您无需担心 - 您将使用ObjectSet<T>
:
var orders = ctx // ObjectContext
.Orders // ObjectSet<Order>
.SingleOrDefault(); // Order
额外提示- 如果可能,用于IObjectSet<T>
促进单元测试(实现模拟测试 - 例如内存中的静态列表)。