有条件地选择Linq新语句
本文关键字:语句 新语句 选择 Linq 有条件 | 更新日期: 2023-09-27 18:29:14
我需要选择数据来用实体框架填充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
};
感谢所有
在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,您可以使用?.
空条件成员访问运算符:
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
,而不是空字符串。