2010-06-29 361 views
4

寻找联合INSERT/UPDATE/DELETE语句,MERGE正是我需要的,但我似乎无法找到,如果LINQ/SQL支持它(从http://www.sqlbook.com/SQL-Server/SQL-MERGE-35.aspxLinq to SQL/Linq to Entities能否生成MERGE语句?

-- 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

如果你还不能做一个MERGE,那么这个人会演示如何做一个“Upsert”http://stackoverflow.com/questions/637225/how-would-you-write-an-upsert-for-linq -to-SQL – DOK 2010-06-29 18:57:01

回答

2

当前的LINQ to SQL版本呢不会生成MERGE声明。您必须在代码中创建一个自定义Upsert方法来执行Upsert