我们如何告诉 Entity Framework 关于Aggregates的信息?
- 保存聚合时,将实体保存在聚合中
- 删除聚合时,删除聚合中的实体
- 当两个不同的用户尝试修改同一聚合中的两个不同实体时引发并发错误
- 加载聚合时,即使在我们访问聚合中的所有实体之前存在一些时间延迟,也要提供聚合的一致时间点视图
(实体框架 4.3.1 代码优先)
我们如何告诉 Entity Framework 关于Aggregates的信息?
(实体框架 4.3.1 代码优先)
EF 提供的功能允许您定义聚合并使用它们:
我专门为此目的编写了GraphDiff 。它允许您通过提供流畅的映射来定义更新时的“聚合边界”。我在需要来回传递分离的实体图的情况下使用了它。
例如:
// Update method of repository
public void Update(Order order)
{
context.UpdateGraph(order, map => map
.OwnedCollection(p => p.OrderItems);
}
以上将告诉实体框架更新订单实体并合并 OrderItems 的集合。以这种方式映射允许我们确保实体框架仅在我们在聚合上定义的范围内管理图形并忽略所有其他属性。它支持对所有实体的乐观并发检查。它处理更复杂的场景,还可以处理多对多场景中的更新引用(通过 AssociatedCollections)。
希望这可以使用。