C# 如何将两个可为空的日期之间的差异按顺序转换为SQL?

C# 如何将两个可为空的日期之间的差异按顺序转换为SQL?,c#,asp.net-core,entity-framework-core,C#,Asp.net Core,Entity Framework Core,我有一本字典 var OrderBy = new Dictionary<string, IQueryable<Something>> { (...) { "DateDifference", OrderDirection == "asc" ? query.OrderBy(x => x.Date1.Value.Date - x.Date2.Value.Date) :

我有一本字典

var OrderBy = new Dictionary<string, IQueryable<Something>>
{
    (...)

    { "DateDifference", OrderDirection == "asc" ?
                        query.OrderBy(x => x.Date1.Value.Date - x.Date2.Value.Date) :
                        query.OrderByDescending(x => x.Date1.Value.Date - x.Date2.Date)},
};
var OrderBy=新字典
{
(...)
{“DateDifference”,OrderDirection==“asc”?
query.OrderBy(x=>x.Date1.Value.Date-x.Date2.Value.Date):
query.OrderByDescending(x=>x.Date1.Value.Date-x.Date2.Date)},
};
但当它尝试在
某个日期等于null的对象上计算时,会出现异常

有人知道怎么做吗?

好的,我是个黑客

var OrderBy = new Dictionary<string, IQueryable<Something>>
{
    (...)

    { "DateDifference", input.OrderDirection == "asc" 

                        ?

                        input.OrderBy(x => 
                        (x.Date1 == null ? new DateTime(0).Date : x.Date1.Value.Date)
                        -
                        (x.Date2 == null ? new DateTime(0).Date : x.Date2.Value.Date)) 

                        :

                        input.OrderByDescending(x => 
                        (x.Date1 == null ? new DateTime(0).Date : x.Date1.Value.Date)
                        -
                        (x.Date2 == null ? new DateTime(0).Date : x.Date2.Value.Date)) },
};
var OrderBy=新字典
{
(...)
{“DateDifference”,input.OrderDirection==“asc”
?
input.OrderBy(x=>
(x.Date1==null?新的日期时间(0)。日期:x.Date1.Value.Date)
-
(x.Date2==null?新的日期时间(0)。日期:x.Date2.Value.Date)
:
input.OrderByDescending(x=>
(x.Date1==null?新的日期时间(0)。日期:x.Date1.Value.Date)
-
(x.Date2==null?新的日期时间(0)。日期:x.Date2.Value.Date))},
};

是否执行
x.Date1?.Value.Date-x.Date2?.Value.Date
work?@LasseVågsætherKarlsen
表达式树lambda可能不包含空传播运算符。
@LasseVågsætherKarlsen I可能已成功执行此操作