选择可选导航属性实体框架的属性的正确方法是什么?
我担心的是,如果导航属性为null,那么当我尝试访问其(可选导航属性的(属性时,会抛出错误。
以下是我尝试过的:
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
产生错误:
表达式树lambda不能包含null传播运算符。
这是否意味着我应该执行第二个请求来获取可选导航属性的所有属性?或者有没有一种方法可以在可选导航属性不为null的情况下查询可选导航属性的属性,否则返回null?
为什么不使用条件运算符?
CaseRelationTypeName = (rc.CasesRelationType != null) ? rc.CasesRealtionType.Name : null;