我们的旧数据库将空日期值存储为 01.01.1900
我希望我的应用程序通过使用转换器在任何地方使用“null”作为空值。
但是文档说:
空值永远不会传递给值转换器。这使得转换的实现更容易,并允许它们在可空和不可空属性之间共享。
我的代码:
var dateConverter = new ValueConverter<DateTime?, DateTime>(
v => v == null ? new DateTime(1900, 01, 01) : v.Value,
v => v.Year == 1900 ? (DateTime?)null : v);
modelBuilder.Entity<Table>().Property(a => a.Date).HasConversion(dateConverter);
//query
return table.Where(a => a.Date == null);
被翻译成:
select * from table a where a.Date is null
我需要它自动翻译成类似的东西:
select * from table a where a.Date = '1900-01-01T00:00:00.000'
转换器中的空值是否有任何解决方法?