sách gpt4 ai đã đi

c# - LINQ 嵌套数组和三元运算符。不支持嵌套查询。操作 1 ='Case' 操作 2 ='Collect'

In lại 作者:行者123 更新时间:2023-11-30 21:42:33 30 4
mua khóa gpt4 Nike

以下代码产生错误

The nested query is not supported. Operation1='Case' Operation2='Collect'

问题是我做错了什么?我该如何解决?

IQueryable v = from ul in userLeagues
select new Map.League
{
id = ul.LeagueID,
seasons =
inc.Seasons ? (from ss in ul.Standings
where ss.LeagueID == ul.LeagueID
select new Map.Season
{
seasonId = ss.Season.SeasonId,
seasonName = ss.Season.SeasonName
}).ToList() : null,
};

làm mới

我无法理解的是为什么这是一种魅力

seasons = (from ss in ul.Standings
where ss.LeagueID == ul.LeagueID
select new Map.Season
{
seasonId = ss.Season.SeasonId,
seasonName = ss.Season.SeasonName
}).Distinct(),

三元运算符有什么问题?

1 Câu trả lời

异常表明您正在使用 Entity Framework 。在问题中提及 LINQ 实现总是好的。

当 LINQ 针对 SQL 后端运行时,SQL 提供程序会尝试将整个语句转换为一条 SQL 语句。这大大减少了支持的操作类型,因为 SQL 的限制远比 LINQ 多。请注意,变量 inc.Seasons 也应该是 SQL 语句的一部分。现在的问题是 SQL 不能根据作为自身一部分的变量返回两个不同的结果集:总是有一个固定的 SELECT 子句。

所以表达式中有一个 Case 方法不被支持(我猜因此后续的 Collect 也不被支持)。

您可以通过将包含部分作为 where 子句的一部分来解决此问题:

from ul in userLeagues
select new Map.League
{
id = ul.LeagueID,
seasons = from ss in ul.Standings
where inc.Seasons // here
&& ss.LeagueID == ul.LeagueID
select new Map.Season
{
seasonId = ss.Season.SeasonId,
seasonName = ss.Season.SeasonName
})
}

关于c# - LINQ 嵌套数组和三元运算符。不支持嵌套查询。操作 1 ='Case' 操作 2 ='Collect',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42467165/

30 4 0
Bài viết được đề xuất: C# - 使用 StreamReader 读取 HTTP 请求
Bài viết được đề xuất: c - 如何格式化/缩进多行文本常量
Bài viết được đề xuất: c - 我需要C中的FILES帮助
Bài viết được đề xuất: c# - ToArray() 函数限制
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com