gpt4 book ai didi

c# - 对现有 Entity Framework 对象的 PUT 请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:35 26 4
gpt4 key购买 nike

我有 5 个 Entity Framework 模型,它们都相互关联。将一个新的发布到数据库很简单,但是尝试通过 PUT 请求更新它们会变得非常困惑。我必须手动进入每个集合并更新正在更改的内容。

        private void updateRelation(Dealer dealer)
{
var dealerOld = db.Dealers.Include(d => d.Contacts).Single(d => d.DealerID == dealer.DealerID);
var contactsNew = dealer.Contacts;
List<int> contactIds = new List<int>();

if (dealer.DealerGroup == null ||
dealerOld.DealerGroup == null ||
dealer.DealerGroup.DealerGroupID != dealerOld.DealerGroup.DealerGroupID)
{

if (dealerOld.DealerGroup != null)
{
DealerGroup d = db.DealerGroups.Find(dealerOld.DealerGroupID);
d.Dealers.Remove(dealerOld);
}

}

updateManyToMany(dealer,dealerOld,contactIds,contactsNew);
}

private void updateManyToMany(Dealer dealer, Dealer dealerOld, List<int> contactIds, ICollection<Contact> contactsNew )
{

foreach (var contact in contactsNew)
{
contactIds.Add(contact.ContactID);
}

foreach (var contact in dealerOld.Contacts.ToList())
{
if (!contactIds.Contains(contact.ContactID))
{
dealerOld.Contacts.Remove(contact);
}
}

foreach (int contactId in contactIds)
{
if (!dealerOld.Contacts.Any(c => c.ContactID == contactId))
{
var contact = new Contact() { ContactID = contactId };
dealerOld.Contacts.Add(contact);
db.Contacts.Attach(contact);
}
}
}

有没有更简单的方法来做到这一点

最佳答案

还有许多其他问题与此相关,在此期间您可能需要花一点时间来筛选解决方法的答案,或者等待更有帮助的答案。

关于c# - 对现有 Entity Framework 对象的 PUT 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622362/

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