简单来说,我的代码有更好的方法吗? (检查下面的代码)。
详情:
在 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
});
最佳答案
您可以使用 DefaultIfEmpty避免 Entity Framework 不支持的三元运算符
var Bills = db.BillMasters
.Select(x => new BillHomeViewModel
{
ConsumerCategory = db.ConsumerCategories
.Where(c => c.ID == x.ConsumerCategory)
.Select(c => c.CategoryName)
.DefaultIfEmpty("")
.FirstOrDefault()
});
关于c# - Linq to SQL 在访问属性之前检查对象上的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54287113/