gpt4 book ai didi

c# - Linq 有条件地选择新语句

转载 作者:行者123 更新时间:2023-11-30 23:31:19 25 4
gpt4 key购买 nike

我需要选择数据以使用 Entity Framework 填充 MVC Asp.net 中的 DataGrid。当我选择所有值时,我需要从三个连接的表中获取值:e、类别和产品。连接始终是 1 到 0 或 1。我已经使用此代码选择了所有 walue,但是当没有关联的 category.name 时,我自然会有一个异常(exception)。执行此操作的最佳方法是什么?我需要在新构造函数中使用 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 中,您可以使用 ?. null-conditional member access运算符(operator):

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 而不是空字符串。

关于c# - Linq 有条件地选择新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com