使用 LINQ 到 SQL 更新时的其他条件
本文关键字:其他 条件 更新 LINQ SQL 使用 | 更新日期: 2023-09-27 18:35:41
我对 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 是否支持这样的东西?
我建议您考虑使用 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