3
我使用Linq to Sql並且無法更新多對多的關係。更新一個多對多的關係Linq to Sql
我的場景: 產品由一個或多個項目指定。當我創建了一個產品,我只是選擇所需的項目,這些項目通過補充說:
product.ProductItemRel.Add(itemRel);
但什麼是當我需要更新的最佳做法是什麼?
我可以使我自己的更新功能找到要刪除的項目和要插入的項目,但它很容易需要20行代碼。
等等快速和髒:
var oldProduct = orderRepository.GetProductCRUD.FetchSingle(x => x.ProductID == product.ProductID);
//Add items
foreach (var i in items)
{
if(i not exist in oldProduct)
{
var itemRel = new ProductItemRel()
{
ItemID = i,
Product = product
};
product.ProductItemRel.Add(itemRel);
}
}
//Delete items
foreach(var p in oldProduct)
{
if(p not exist in items)
{
product.ProductItemRel.Remove(relation to delete);
}
}
另一種非常不錯的方法,是隻刪除所有關係的添加新的。
當我需要更新多對多關係時,Linq to Sql的最佳實踐是什麼?