我有以下 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将值设置为只有在数据库上运行查询时才能获得的值。
有谁知道这是否可能以及如何做到这一点?