.net 是否可以使用实体框架来表示逻辑合并?
我得到了如下的MERGE语句:.net 是否可以使用实体框架来表示逻辑合并?,.net,entity-framework,upsert,.net,Entity Framework,Upsert,我得到了如下的MERGE语句: MERGE MyTable AS target USING (SELECT @Id, @Name, @Description, @Checksum) AS source(Id, Name, Description, Checksum) ON target.Id = source.Id WHEN MATCHED THEN UPDATE SET Name=@Name, Description=@
MERGE
MyTable AS target
USING
(SELECT @Id, @Name, @Description, @Checksum)
AS source(Id, Name, Description, Checksum)
ON
target.Id = source.Id
WHEN MATCHED THEN
UPDATE SET
Name=@Name,
Description=@Description,
IsChanged=(select case
when target.Checksum=@Checksum
then 0
else 1
end),
checksum=@checksum
WHEN NOT MATCHED THEN
INSERT (Id, Name, Description, IsChanged, Checksum)
VALUES (@Id, @Name, @Description, 0, @Checksum);
这是一个非常简单的合并,只是我正在计算记录的校验和,我还想根据校验和是否已更改来标记记录上的IsChanged
字段,这取决于目标表中的数据
这非常有效,但现在我正在考虑将其迁移到Entity Framework,并且我希望对.NET对象使用AddObject/Attach语法。是否可以这样做,但根据目标表数据捕获服务器端逻辑