Есть ли способ заставить LINQ-to-SQL считать столбец грязным? Глобально было бы достаточно ....
По сути, у меня есть проблема с некоторым кодом аудита в устаревшей системе, с которой я разговариваю в L2S, представьте:
var ctx = new SomeDataContext(); // disposed etc - keeping it simple for illustration
var cust = ctx.Customers.First(); // just for illustration
cust.SomeRandomProperty = 17; // whatever
cust.LastUpdated = DateTime.UtcNowl;
cust.UpdatedBy = currentUser;
ctx.SubmitChanges(); // uses auto-generated TSQL
Это нормально, но если один и тот же пользователь обновляет его дважды подряд, UpdatedBy
- это NOP, и TSQL будет (примерно):
UPDATE [dbo].[Customers]
SET SomeRandomColumn = @p0 , LastUpdated = @p1 -- note no UpdatedBy
WHERE Id = @p2 AND Version = @p3
В моем случае проблема заключается в том, что в настоящее время во всех таблицах есть триггер аудита с поясом и скобками, который проверяет, обновлен ли столбец аудита, и, если нет, предполагает, что разработчик виноват (подставляя 1010 *, хотя он может также с готовностью выдать ошибку).
Что я действительно хотел бы сделать, так это сказать «всегда обновлять этот столбец, даже если он не грязный» - возможно ли это?