entity-framework - 在实体框架中选择可选导航属性的属性的正确方法是什么?
问题描述
选择可选导航属性实体框架的属性的正确方法是什么?
我担心如果导航属性为空,那么当我尝试访问其(可选导航属性)属性时会引发错误。
这是我尝试过的:
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 可能不包含空传播运算符。
这是否意味着我应该执行第二个请求以获取可选导航属性的所有属性?或者有没有办法查询可选导航属性的属性,以防可选导航属性不为空,否则返回空?
解决方案
为什么不使用条件运算符?
CaseRelationTypeName = (rc.CasesRelationType != null) ? rc.CasesRealtionType.Name : null;
推荐阅读
- python - 如何修复在 python 中绘制的热图似乎与散点图相去甚远
- octobercms - 在 octobercms,用户插件中不断收到“密码确认不匹配”
- python - 如何在 Python 中忽略反斜杠作为转义字符?
- android - 仅向特定视图显示 Firebase 应用内消息
- javascript - 在 Chrome Overrides 中覆盖动态文件
- datetime - parseDateTime 输出差异
- python - 无法抓取辩论者之间的对话以便将它们放入字典
- mongodb - 查找两个字段的总和并使用结果更新 MongoDB 字段
- javascript - 使用框中的箭头增加 TextBox 中的值
- c# - 如何在 ASP.Net Zero 框架中使用自定义 ID 主键?