Может ли Linq to SQL / Linq to Entities генерировать оператор MERGE? - PullRequest
4 голосов
/ 29 июня 2010

В поисках комбинированного оператора INSERT / UPDATE / DELETE MERGE - это именно то, что мне нужно, но я не могу найти, поддерживает ли его LINQ / SQL (http://www.sqlbook.com/SQL-Server/SQL-MERGE-35.aspx)

)
-- Merge order items into OrderItems table
MERGE INTO OrderItem As oi
USING @UpdatedItems ui
ON (oi.OrderID = ui.OrderID AND oi.ProductID = ui.ProductID)
WHEN MATCHED THEN
    UPDATE SET Quantity = ui.Quantity, UnitCost = ui.UnitCost
WHEN NOT MATCHED THEN
    INSERT (OrderID, ProductID, Quantity, UnitCost)
    VALUES (@OrderID, ui.ProductID, ui.Quantity, ui.UnitCost)
WHEN SOURCE NOT MATCHED THEN
    DELETE;

1 Ответ

2 голосов
/ 29 июня 2010

Текущая версия LINQ to SQL не генерирует оператор MERGE. Вы должны создать собственный метод Upsert в коде, чтобы сделать Upsert.

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