Linq to SQL проверяет наличие нулевого объекта перед доступом к свойству - PullRequest
0 голосов
/ 21 января 2019

Проще говоря, есть ли лучший способ для моего кода? (проверьте код ниже).

Detail:
В LINQ to SQL у меня есть запрос, который содержит какой-то внутренний запрос. В этом внутреннем запросе я использовал FirstOrDefault (), поэтому теперь я хочу проверить, вернул ли FirstOrDefault () какое-либо нулевое значение, после чего я могу получить доступ к свойству.

var Bills = db.BillMasters.Select(x => new BillHomeViewModel {
            ConsumerCategory = db.ConsumerCategories.FirstOrDefault(c => c.ID == x.ConsumerCategory) == null ? String.Empty : db.ConsumerCategories.FirstOrDefault(c => c.ID == x.ConsumerCategory).CategoryName                
        });

1 Ответ

0 голосов
/ 21 января 2019

Вы можете использовать DefaultIfEmpty , чтобы избежать тернарного оператора, не поддерживаемого структурой сущности

var Bills = db.BillMasters
.Select(x => new BillHomeViewModel
{
    ConsumerCategory = db.ConsumerCategories
        .Where(c => c.ID == x.ConsumerCategory)
        .Select(c => c.CategoryName)
        .DefaultIfEmpty("")
        .FirstOrDefault()
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...