C# 检查Linq查询中的对象是否为Null

C# 检查Linq查询中的对象是否为Null,c#,.net,linq,C#,.net,Linq,如何使用LINQ查询检查对象是否为空 如果对象为空,我希望在搜索中忽略它 我不想在查询之前执行If-Else语句和重复代码并检查对象是否为Null。此时,如果对象不是空的,我的查询将返回一个错误“Nullable对象必须有一个值” public ActionResult搜索(List accountStatus=null,string accountName=”,int pageId=1) { var model=Db.Entities .Where(i=>i.GroupId==null&&i.

如何使用LINQ查询检查对象是否为空

如果对象为空,我希望在搜索中忽略它

我不想在查询之前执行If-Else语句和重复代码并检查对象是否为Null。此时,如果对象不是空的,我的查询将返回一个错误“Nullable对象必须有一个值”

public ActionResult搜索(List accountStatus=null,string accountName=”,int pageId=1)
{
var model=Db.Entities
.Where(i=>i.GroupId==null&&i.IsActive)
.Where(an=>string.IsNullOrEmpty(accountName)| |(an.Name.StartsWith(accountName)| | an.Name.Contains(accountName)))
托利斯先生()
.Where(accs=>accountStatus==null | | accountStatus.Contains((int)accs.CurrentStatusId.Value))
.OrderByDescending(x=>x.CreatedDate);
if(Request.IsAjaxRequest())
{
返回PartialView(“*******”,model.ToPagedList(pageId,nbItemsPerPage));
}
返回视图(模型);
}

如果要在
帐户状态
空时让所有
帐户
通过,请执行以下操作:

.Where( accs => accs != null
                && ( accountStatus == null
                     || accountStatus.Contains(accs.CurrentStatusId.GetValueOrDefault(-1))
                   )
      )

哪一行返回错误?您可能确实想知道哪个属性是
null
。另外,为什么在代码的中间有一个<代码> Toistist<代码>?(ACC==ActualSt==NULL),AcActudio包含((int)ACC.CurrrnStutsiD.Value)什么属性是NULL?为什么要检查<代码> ActualStase为无效(<代码>=null < /代码>)?你不想确认它不是空的吗?
.Where( accs => accs != null
                && ( accountStatus == null
                     || accountStatus.Contains(accs.CurrentStatusId.GetValueOrDefault(-1))
                   )
      )