2

我们的旧数据库将空日期值存储为 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'

转换器中的空值是否有任何解决方法?

4

0 回答 0