我需要选择数据来填充MVC Asp.net中的DataGrid和实体框架。当我选择所有值时,我需要连接三个表的值:e,类别和产品。连接始终为1到0或1.我已使用此代码选择了所有walue但是当没有category.name关联时,我自然会有异常。这样做的最佳方法是什么?我是否需要在New构造函数中使用if?或其他?
var products = from e in dbResult
select new
{
e.Id,
e.Title,
e.Price,
e.Quantity,
e.category.nome,
e.Product.Sottotitolo,
e.Procuct.Provenienza
};
感谢所有
答案 0 :(得分:2)
在C#6之前,一种方法是:
var products = from e in dbResult
select new
{
e.Id,
e.Title,
e.Price,
e.Quantity,
Noma = e.category == null ? "" : e.category.nome,
Sottotitolo = e.Product == null ? "" : e.Product.Sottotitolo,
Provenienza = e.Procuct == null ? "" : e.Procuct.Provenienza
};
使用C#6,您可以使用?.
null-conditional member access运算符:
var products = from e in dbResult
select new
{
e.Id,
e.Title,
e.Price,
e.Quantity,
Noma = e.category?.nome,
Sottotitolo = e.Product?.Sottotitolo,
Provenienza = e.Procuct?.Provenienza
};
请注意,后一种方法中的字段值将为null
而不是空字符串。