使用LINQ to SQL更新时的其他条件

时间:2014-12-30 03:31:07

标签: c# sql-server linq

我对LINQ很新手,但我的印象是在更新表时,LINQ会创建一些这样的SQL代码:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

我猜主键是在WHERE子句中使用的。假设我的表/对象有一个时间戳列,我想检查自上次读取特定行以来时间戳是否已更改。即,我的UPDATE语句将是:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value AND timestamp=my_timestamp;

显然目的是在时间戳发生变化时中止更新(意味着另一个用户已更新此行并且我的数据已过时)。

LINQ是否支持这样的内容?

1 个答案:

答案 0 :(得分:0)

我建议您考虑使用LINQ to SQL的内置并发功能:

http://msdn.microsoft.com/en-us/library/bb399373%28v=vs.110%29.aspx

仔细阅读,然后我打赌你需要使用它:

http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.updatecheck%28v=vs.110%29.aspx