gpt4 book ai didi

c# - LINQ 表达式中的聚合函数抛出错误。 (不能翻译成商店表达式。)

转载 作者:太空狗 更新时间:2023-10-29 22:37:43 25 4
gpt4 key购买 nike

错误:LINQ to Entities 无法识别方法 'System.String Aggregate[String,String](System.Collections.Generic.IEnumerable1[System.String], System.String, System.Func3[System .String,System.String,System.String])' 方法,并且该方法不能转换为存储表达式。

Linq 表达式:

      Items = context.TESTANSWER.Where(x => x.ID == 6729223232)
.Join(context.QUESTIONREPOs, x => x.QUESTIONID, y => y.ID, (x, y) => new { x = x, y = y })
.Join(context.OPTIONREPOs, p => p.x.QUESTIONID, q => q.QUESTIONID, (p, q) => new { p = p, q = q }).Where(p => p.p.x.RESPONSEID == p.q.ID)
.GroupJoin(context.TESTANSWERASSOCIATION, c => c.p.x.ID, b => b.TESTANSWERID, (c, b) => new { c = c, b = b })
.SelectMany(
n => n.b.DefaultIfEmpty(),
(n, b) =>
new QuestListItemObj
{
State = n.c.p.x.STATE,
Association = n.b.Select(l => l.ASSOCIATION.TITLE).ToList().Aggregate((s, t) => s + ", " + t),
Description = n.c.p.y.DESCRIPTION,
Question = n.c.p.y.QUESTION,
Answer = n.c.q.OPTIONTEXT,
}).ToList();

我也刚刚尝试了 SelectMany 但得到了同样的错误..

 Affiliaiton = n.b.SelectMany(l => l.AFFILIATION.TITLE).Aggregate(string.Empty, (s, t) => s + ", " + t),

最佳答案

您有一个转换为 SQL 的 IQueryable。您的 Aggregate 是 SQL 未知的方法,因此无法翻译它,您会遇到异常。

一种可能的方法是在之前调用AsEnumerable()。这将导致查询执行并从您的 SQL 服务器获取数据,其余操作在内存中执行(而不是在您的 SQL 服务器上)。

myQuery.AsEnumerable().Aggregate(...)

关于c# - LINQ 表达式中的聚合函数抛出错误。 (不能翻译成商店表达式。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453657/

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