Linq to SQL/Linq to Entities能生成MERGE语句吗?

4

寻找一个综合的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
如果您尚未能够进行合并操作,此人展示如何执行“Upsert”操作https://dev59.com/R3RB5IYBdhLWcg3wZWfi - DOK
1个回答

2

LINQ to SQL的当前版本不会生成MERGE语句。您需要在代码中创建一个自定义的Upsert方法来执行Upsert操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接