gpt4 book ai didi

entity-framework-4 - 添加到父实体时是否会自动跟踪子实体?

转载 作者:行者123 更新时间:2023-12-04 07:56:12 26 4
gpt4 key购买 nike

我想知道 EF CodeFirst 是否会在下面的示例中自动跟踪“子”对象。

var db = MyDataContext();
var order = db.Orders.Find(orderId);
order.AddOrderLine("Fancy Product");
db.Commit();

这是我的(简化的)域实体
public class OrderLine {
public Guid OrderLineId { get; private set; }
public Guid OrderId { get; private set; }
public string Description { get; private set; }

public OrderLine(Guid orderId, string description) {
OrderLineId = Guid.NewGuid();
OrderId = orderId;
Description = description;
}
}

public class Order : Aggregate {
public Guid OrderId { get; private set; }
public ICollection<OrderLine> OrderLines { get; private set; }

public void AddOrderLine(string description) {
OrderLines.Add(new OrderLine(OrderId, description));
}
}

最佳答案

是的,当您收到 Order 时从上下文中添加新的 OrderLine , DbContext将它插入到数据库调用 SaveChanges .它还将跟踪加载的所有更改 OrderLines .唯一的异常(exception)是删除现有的 OrderLine .如果您的 OrderLine只有PKOrderLineId移除 OrderLine来自 Order.OrderLines收藏不会删除OrderLine在数据库中,但它会设置它的 OrderId为空(= 在您的情况下异常(exception))。如果两者都OrderLineIdOrderId PK在你OrderLine实体移除 OrderLine来自 Order.OrderLines也将删除 OrderLine数据库中。

关于entity-framework-4 - 添加到父实体时是否会自动跟踪子实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com