В .NET тип данных DateTime имеет точность до 100 нс. В SQL Server и SQL CE тип datetime не такой точный.
У меня есть тонны кода, который использует DateTime.Now или DateTime.UtcNow. Значения, возвращаемые этими вызовами, затем сохраняются в базе данных. В зависимости от значения, когда я извлекаю эти данные из базы данных, они не будут соответствовать введенному значению. В результате модульные тесты не срабатывают, а бизнес-логика, основанная на сравнении, терпит неудачу
Это должно быть очень распространенной проблемой. Должен ли я идти везде в моем коде, где я вижу DateTime.UtcNow или DateTime.Now и округлять его? Если я сделаю это, мне также придется запретить все будущие ссылки на DateTime.Now и DateTime.UtcNow. Есть ли способ легко предотвратить это?
Существуют ли другие стандартные подходы?
Спасибо