gpt4 book ai didi

asp.net-mvc - Entity Framework : updating one-many relationships for an entity's child collection

转载 作者:行者123 更新时间:2023-12-01 11:47:04 25 4
gpt4 key购买 nike

考虑一个处理房屋和图片的应用程序。名为 House 的实体与 HousePicture 具有 1:n 关系。

该应用程序允许用户创建和编辑House,以及添加/删除HousePictures

[HttpPost]
public ActionMethod Edit(House h)
{
//get an attached entity from the DB first.
House original = db.Houses.SingleOrDefault(x=>x.ID==h.ID);

UpdateModel(original);

//collect all the uploaded pictures.
original.HousePictures = GatherPicturesFromForm();


db.SaveChanges();
// the changes for the House are saved,
//but child collection Pictures are not.
}

从头开始重新创建子集合时,您如何更新(添加新的和删除)子集合?

  • Add()Attach() 为集合中的每个 child ?
  • 您需要按照什么顺序添加或附加父实体与子集合?
  • 如何检测要移除的子项?这是 EF4 的一项功能,删除由框架自动进行,还是开发人员需要编写此逻辑?
  • 当添加多个 HousePicture 时,其 ID == 0。该实体在 SQL Server 中具有主键,具有 int IDENTITY(1, 1)。这成为一个问题,因为 EF4 认为 2+ 个 child 具有相同的 ID。

  • 您对使用 Entity Framework 4 保存子集合有何建议?

  • 关于在更新/添加/删除时使 1:n 集合的持久性更容易的任何其他建议?

最佳答案

在 EF 中,只需将新对象添加到集合中,它们就会自动保存到具有正确外键值的数据库中。

original.HousePictures.AddRange(GatherPicturesFromForm());

关于asp.net-mvc - Entity Framework : updating one-many relationships for an entity's child collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086895/

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