我正在编写两个 LINQ 查询,我在第二个查询中使用第一个查询的结果集。
但在某些情况下,当数据库表中没有数据时,我的第一个查询返回 null,因此我的第二个查询失败,wsdetails.location
并导致异常。wsdetails.worklocation
null
例外:
你调用的对象是空的
我的代码是这样的:
var wsdetails = (from assetTable in Repository.Asset
join userAsset in Repository.UserAsset on
assetTable.Asset_Id equals userAsset.Asset_Id
join subLocationTable in Repository.SubLocation on
assetTable.Sub_Location_Id equals subLocationTable.Sub_Location_ID
where userAsset.User_Id == userCode
&& assetTable.Asset_TypeId == 1 && assetTable.Asset_SubType_Id == 1
select new { workstation = subLocationTable.Sub_Location_Name, location = assetTable.Location_Id }).FirstOrDefault();
result = (from emp in this.Repository.Employee
join designation in this.Repository.Designation on
emp.DesignationId equals designation.Id
where emp.Code == userCode
select new EmployeeDetails
{
firstname = emp.FirstName,
lastname = emp.LastName,
designation = designation.Title,
LocationId = wsdetails.location,
WorkStationName = wsdetails.workstation
}).SingleOrDefault();
作为一种解决方法,我可以检查
if wsdetails == null
并更改我的第二个 LINQ 逻辑,但我相信有一些方法可以null
像运算符一样处理 LINQ 本身的值??
。
但我试过这个,它对我不起作用。
有什么帮助吗?