Обновить отношение многих ко многим Linq к Sql - PullRequest
3 голосов
/ 20 октября 2010

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

1 Ответ

1 голос
/ 20 октября 2010

однажды я искал «красивое и чистое» решение этой проблемы, но я думаю, что общество, похоже, решило «плохой путь».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...