Как правильно выбрать свойство необязательного свойства навигации в Entity Framework? - PullRequest
0 голосов
/ 20 февраля 2020

Как правильно выбрать свойство необязательного каркаса сущности свойства навигации?

Меня беспокоит, что если свойство навигации будет нулевым, то при попытке доступа к нему будет выдана ошибка (необязательные свойства навигации).

Вот что я пробовал:

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 Лямбда дерева выражений может не содержать нулевого оператора распространения.

Означает ли это, что я должен выполнить второй запрос, чтобы получить все свойства необязательного свойства навигации? Или есть способ запросить свойство необязательного свойства навигации в случае, если необязательное свойство навигации не равно нулю, а в противном случае возвращает ноль?

1 Ответ

1 голос
/ 21 февраля 2020

Почему бы не использовать условный оператор?

CaseRelationTypeName = (rc.CasesRelationType != null) ? rc.CasesRealtionType.Name : null;
...