Как использовать CURRENT_TIMESTAMP в операторе обновления LINQ с использованием Entity Framework Core? - PullRequest
3 голосов
/ 18 февраля 2020

У меня есть следующий код T- SQL, который я хочу написать в c# коде с использованием LINQ и ядра платформы сущностей ...

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

Бит, с которым у меня возникла проблема: установка CURRENT_TIMESTAMP. Он ДОЛЖЕН использовать время из базы данных, а не время от службы, выполняющей код, поэтому я не могу использовать DateTime.Now, поскольку это будет время от службы, а не время базы данных, поскольку нет гарантии, что часы синхронизированы c.

В настоящее время я использую ExecuteSqlInterpolated для выполнения этой команды в жестком коде SQL, но на самом деле я хочу использовать EF для обновления через модели сущностей и SaveChanges () et c, но я не знаю, есть ли способ заставить EF / LINQ установить значение, которое может быть получено только при выполнении запроса к базе данных.

Кто-нибудь знает, возможно ли это и как это сделать? сделать это?

1 Ответ

1 голос
/ 18 февраля 2020

Это будет один из случаев, когда я буду рассматривать триггер базы данных и ничего не делать в C#

...