Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将SQL中的空DateTime从01.01.1900转换为C中的空DateTime,反之亦然_C#_Linq_Entity Framework Core_Ef Core 2.2 - Fatal编程技术网

C# 将SQL中的空DateTime从01.01.1900转换为C中的空DateTime,反之亦然

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

我们的旧数据库将空日期值存储为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'
转换器中是否有空值的解决方法?

既不是空值也不是空值。在SQL Server或CW中,这都是一个完全有效的日期时间。为什么要将其用作特殊值?为什么不将列设为null(这是一个非中断更改)为什么要将有效值更改为null?这个值是从哪里来的?一些表字段默认值?也许该字段应该为空,而不是接受无意义的默认值?我们的旧数据库将空日期值存储为01.01.1900。我无法改变这一事实。@xiety与其试图改变SQL的工作方式,还不如在忘记它在幕后被更改时处理混乱和错误,不如在某个地方定义一个空日期,例如AX.Empty常量,并使用它进行比较。