在 Entity Framework 中 select 可选导航 属性 属性 的正确方法是什么?
What is a correct way to select a property of optional navigation property in Entity Framework?
select 属性 可选导航 属性 entity framework 的正确方法是什么?
我担心如果导航 属性 为空,那么当我尝试访问其(可选导航 属性`s)时会抛出错误 属性 .
这是我尝试过的:
return await this.relatedCasesRepository
.GetAll()
.AsNoTracking()
.Where(rc => rc.FirstCaseId == caseId || rc.SecondCaseId == caseId)
.Select(rc => new RelatedCaseInfoDto
{
FirstCaseId = rc.FirstCaseId,
FirstCaseName = rc.FirstCase.Name,
SecondCaseId = rc.SecondCaseId,
SecondCaseName = rc.SecondCase.Name,
CaseRelationTypeId = rc.CaseRelationTypeId,
CaseRelationTypeName = rc.CasesRelationType?.Name,
Id = rc.Id
})
.ToArrayAsync();
代码:rc.CasesRelationType?.Name
产生错误:
An expression tree lambda may not contain a null propagation operator.
这是否意味着我应该执行第二个请求来获取可选导航的所有属性 属性?或者有没有办法查询可选导航 属性`s 属性 以防可选导航 属性 不为空,否则 return 为空?
为什么不使用条件运算符?
CaseRelationTypeName = (rc.CasesRelationType != null) ? rc.CasesRealtionType.Name : null;
select 属性 可选导航 属性 entity framework 的正确方法是什么?
我担心如果导航 属性 为空,那么当我尝试访问其(可选导航 属性`s)时会抛出错误 属性 .
这是我尝试过的:
return await this.relatedCasesRepository
.GetAll()
.AsNoTracking()
.Where(rc => rc.FirstCaseId == caseId || rc.SecondCaseId == caseId)
.Select(rc => new RelatedCaseInfoDto
{
FirstCaseId = rc.FirstCaseId,
FirstCaseName = rc.FirstCase.Name,
SecondCaseId = rc.SecondCaseId,
SecondCaseName = rc.SecondCase.Name,
CaseRelationTypeId = rc.CaseRelationTypeId,
CaseRelationTypeName = rc.CasesRelationType?.Name,
Id = rc.Id
})
.ToArrayAsync();
代码:rc.CasesRelationType?.Name
产生错误:
An expression tree lambda may not contain a null propagation operator.
这是否意味着我应该执行第二个请求来获取可选导航的所有属性 属性?或者有没有办法查询可选导航 属性`s 属性 以防可选导航 属性 不为空,否则 return 为空?
为什么不使用条件运算符?
CaseRelationTypeName = (rc.CasesRelationType != null) ? rc.CasesRealtionType.Name : null;