3

我有以下 T-SQL,我想使用 LINQ 和实体框架核心在 c# 代码中编写...

UPDATE [MyTable1] 
SET [LastContacted] = CURRENT_TIMESTAMP 
FROM [MyTable1] t1
JOIN [MyTable2] t2 ON t2.[ID] = t1.[Table1ID] 
WHERE t2.[MyColumn1] = 'MySearchName'

我遇到的问题是设置 CURRENT_TIMESTAMP。它必须使用来自数据库的时间,而不是来自运行代码的服务的时间,所以我不能使用 DateTime。现在因为那将是来自服务的时间而不是数据库时间,因为没有保证时钟是同步的.

目前我正在使用 ExecuteSqlInterpolated 将这个命令作为硬编码的 SQL 执行,但我真的想使用 EF 通过实体模型和 SaveChanges() 等进行更新,但我不知道是否有办法获得 EF/LINQ将值设置为只有在数据库上运行查询时才能获得的值。

有谁知道这是否可能以及如何做到这一点?

4

1 回答 1

1

这将是我考虑数据库触发器而不在 C# 中做任何事情的时候之一

于 2020-02-18T09:29:27.730 回答