Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# SqlKata-如果where子句的一部分为null,会发生什么情况?_C#_Linq_Sqlkata - Fatal编程技术网

C# SqlKata-如果where子句的一部分为null,会发生什么情况?

C# SqlKata-如果where子句的一部分为null,会发生什么情况?,c#,linq,sqlkata,C#,Linq,Sqlkata,我有一个SQLKata查询。它与香草SQLKata不同,因为有些同事已经准备好了包装 var conditionQuery = new CustomQuery<MyClass>() .Select ( s => s.Id, s => s.StartTime, s => s.CreatedTime )

我有一个SQLKata查询。它与香草SQLKata不同,因为有些同事已经准备好了包装

var conditionQuery = new CustomQuery<MyClass>()
            .Select
            (
               s => s.Id,
               s => s.StartTime,
               s => s.CreatedTime
            )
            .Where(w => w.Id == jobs.PersonLinks.FirstOrDefault().PersonId)
            .Where(w => w.StartTime == jobs.PersonLinks.FirstOrDefault().Time)
            .OrderBy(w => w.CreatedTime);
var conditionQuery=new CustomQuery()
.选择
(
s=>s.Id,
s=>s.StartTime,
s=>s.CreatedTime
)
.Where(w=>w.Id==jobs.PersonLinks.FirstOrDefault().PersonId)
.Where(w=>w.StartTime==jobs.PersonLinks.FirstOrDefault().Time)
.OrderBy(w=>w.CreatedTime);

我的问题是,如果
jobs.PersonLinks
为null,那么
conditionQuery
是否解析为null?

由于关于这个问题的信息很少,我写了一个一般性的答案。 你可以用这个

.Where(w => w.Id == jobs.PersonLinks?.FirstOrDefault()?.PersonId ?? -1)
.Where(w => w.StartTime == jobs.PersonLinks?.FirstOrDefault()?.Time ?? new DateTime())

由于关于这个问题的信息很少,我写了一个大概的答案。 你可以用这个

.Where(w => w.Id == jobs.PersonLinks?.FirstOrDefault()?.PersonId ?? -1)
.Where(w => w.StartTime == jobs.PersonLinks?.FirstOrDefault()?.Time ?? new DateTime())

当PersonLink为
null
时,应
抛出
。“你是想问它什么时候是空的吗?”亨克沃特曼说,即使是空的,它也会扔。他也在访问该行上的一个属性。我应该补充一点,PersonLinks被初始化为一个空列表。因此,在我尝试为
conditionQuery
分配内容之前,我应该先确定是否PersonLink
。Any
,对吗?我想我可以将其包装在一个
if(jobs.PersonLinks.Any())
中,由Linq提供者决定,因此唯一可以回答这个问题的是那些同事(假设是Linq)。如果提供程序正确执行其工作,则不应执行此操作,并且
Where
不是
函数
,而是可以解析和转换的
表达式。当PersonLink为
null
时,应
抛出
。“你是想问它什么时候是空的吗?”亨克沃特曼说,即使是空的,它也会扔。他也在访问该行上的一个属性。我应该补充一点,PersonLinks被初始化为一个空列表。因此,在我尝试为
conditionQuery
分配内容之前,我应该先确定是否PersonLink
。Any
,对吗?我想我可以将其包装在一个
if(jobs.PersonLinks.Any())
中,由Linq提供者决定,因此唯一可以回答这个问题的是那些同事(假设是Linq)。如果提供程序正确执行其工作,则不应执行此操作,并且
其中
不是
函数
,而是可以解析和转换的
表达式。