代码之家  ›  专栏  ›  技术社区  ›  esac

LINQ to SQL/LINQ to Entities能否生成MERGE语句?

  •  4
  • esac  · 技术社区  · 14 年前

    寻找一个组合的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 回复  |  直到 14 年前
        1
  •  2
  •   decyclone    14 年前

    的当前版本 LINQ to SQL 不生成 MERGE 语句。必须创建自定义 Upsert 代码中要执行的方法 上衣 .