使用 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 到 SQL 更新时的其他条件

我建议您考虑使用 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