C# 将SQL中的空DateTime从01.01.1900转换为C中的空DateTime,反之亦然
我们的旧数据库将空日期值存储为01.01.1900 我希望我的应用程序通过使用转换器将“null”用作任何地方的空值 但是他说: 空值永远不会传递给值转换器。这使得转换的实现更加容易,并允许在可为null和不可为null的属性之间共享转换 我的代码: var dateConverter=新值转换器 v=>v==null?新日期时间1900,01,01:v.值, v=>v年==1900年?日期时间?空:v; modelBuilder.Entity.Propertya=>a.Date.HasConversiondateConverter; //质疑 返回表。where=>a.Date==null; 翻译为: 从表a中选择*,其中a.日期为空 我需要它自动转换为如下内容: 从表a中选择*,其中a.日期='1900-01-01T00:00:00.000'C# 将SQL中的空DateTime从01.01.1900转换为C中的空DateTime,反之亦然,c#,linq,entity-framework-core,ef-core-2.2,C#,Linq,Entity Framework Core,Ef Core 2.2,我们的旧数据库将空日期值存储为01.01.1900 我希望我的应用程序通过使用转换器将“null”用作任何地方的空值 但是他说: 空值永远不会传递给值转换器。这使得转换的实现更加容易,并允许在可为null和不可为null的属性之间共享转换 我的代码: var dateConverter=新值转换器 v=>v==null?新日期时间1900,01,01:v.值, v=>v年==1900年?日期时间?空:v; modelBuilder.Entity.Propertya=>a.Date.HasConv
转换器中是否有空值的解决方法?既不是空值也不是空值。在SQL Server或CW中,这都是一个完全有效的日期时间。为什么要将其用作特殊值?为什么不将列设为null(这是一个非中断更改)为什么要将有效值更改为null?这个值是从哪里来的?一些表字段默认值?也许该字段应该为空,而不是接受无意义的默认值?我们的旧数据库将空日期值存储为01.01.1900。我无法改变这一事实。@xiety与其试图改变SQL的工作方式,还不如在忘记它在幕后被更改时处理混乱和错误,不如在某个地方定义一个空日期,例如AX.Empty常量,并使用它进行比较。