Я использую 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, когда мне нужно обновитьотношение многих ко многим?