gpt4 book ai didi

c# - 如何在EF中通过替换来更新实体?

转载 作者:太空狗 更新时间:2023-10-29 23:50:02 28 4
gpt4 key购买 nike

我有一个类Order它有一个 List<Item>和一个 Customer .我需要更新 Order及其子类。首先我只附上 Order目的但这样 EF 无法理解 Items 中的变化和 Customers .

然后我尝试将子类的状态更改为 EntityState.Modified但这也不起作用。EF 中是否有一种方法可以用数据库中的现有记录替换父类和子类?

如果没有,我该如何解决这个问题?

var temp = db.Orders.Find(order.Id);
temp = order;
temp.Items = order.Items;
temp.Customer = order.Customer;
db.SaveChanges();

更改用户操作顺序后,我也尝试这样做:

db.Orders.Attach(order) ;
db.SaveChanges();

最佳答案

我还没有为具有子类的实体尝试过此操作,但您可以尝试设置该值。

context.Entry(temp).CurrentValues.SetValues(order);
context.SaveChanges();

这假定订单是实体订单的一个实例。请注意,这将用订单的属性完全覆盖临时记录的每个属性。

此博客有更多信息(也适用于 EF Core):https://web.archive.org/web/20191225092110/http://kerryritter.com/updating-or-replacing-entities-in-entity-framework-6/

关于c# - 如何在EF中通过替换来更新实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36351756/

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