最初のクエリの結果セットを 2 番目のクエリで使用する 2 つの LINQ クエリを作成しています。
しかし、場合によっては、データベース テーブルにデータがない場合、最初のクエリが null を返すため、2 番目のクエリが失敗し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
null
2 つ目の LINQ ロジックを変更しますが、演算子のように LINQ 自体で値を処理する方法がいくつかあると思います??
。
しかし、私はこれを試しましたが、うまくいきませんでした。
何か助けはありますか?