简单来说,我的代码是否有更好的方法? (检查下面的代码)。
详细信息:
在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
});
答案 0 :(得分:4)
您可以使用DefaultIfEmpty来避免实体框架不支持的三元运算符
var Bills = db.BillMasters
.Select(x => new BillHomeViewModel
{
ConsumerCategory = db.ConsumerCategories
.Where(c => c.ID == x.ConsumerCategory)
.Select(c => c.CategoryName)
.DefaultIfEmpty("")
.FirstOrDefault()
});