gpt4 book ai didi

c# - 在 Entity Framework 中比较和插入/更新/删除 child

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:55 24 4
gpt4 key购买 nike

我有一个多选表单需要保存到数据库中。用户可以在随后的访问中编辑他们的选择。这些项目在具有唯一 ID 的表中定义,因此表单仅传回 ID 列表。

它是这样的:

Fruits:
{ id=1, name="apple" }
{ id=2, name="orange" }
{ id=3, name="banana" }

People:
{ id=1, name="user", fruits=apple,orange }

在DB中有一个链接表,链接人的id和水果的id。

现在,当我收到编辑请求时,我需要与现有水果进行比较,以便我知道是否需要添加或删除条目。

foreach (var fruit in existing_fruits)
{
if (post_fruits.Where(e => e.id == fruit.id).Count() == 0) user.Fruits.Remove(fruit);
}

foreach (var fruit in post_fruits)
{
if (existing_fruits.Where(e => e.id == fruit.id).Count() == 0)
{
var entity = context.Fruit.Where(e => e.id == fruit.id);
user.Fruits.Add(entity);
}
}

如您所见,列表中有多个循环和多个 which 调用,这让我想知道是否有更简洁的方法来执行此操作?

最佳答案

EntityFramework.Extended里面有很多有用的功能.它包含批量更新和删除功能,这对您的情况很有用,它还消除了在修改实体之前检索和加载实体的需要,因此它可以提高您将来的性能。

关于c# - 在 Entity Framework 中比较和插入/更新/删除 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31513946/

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