C# LINQ lambda表达式不工作
我有下面的Linq表达式C# LINQ lambda表达式不工作,c#,linq,lambda,expression,C#,Linq,Lambda,Expression,我有下面的Linq表达式 var orderByLambda = Expression.Lambda<Func<Queue, int>>( nullCheckExpression, parameterExpression); queue = context.Table .Join(context.tablea, cq => cq.a, r => r.a, (cq, r) => new { cq, r }) .Join(conte
var orderByLambda = Expression.Lambda<Func<Queue, int>>(
nullCheckExpression, parameterExpression);
queue = context.Table
.Join(context.tablea, cq => cq.a, r => r.a, (cq, r) => new { cq, r })
.Join(context.tableb, s => s.r.b, se => se.b, (s, se) => new { s, se })
.Join(context.tablec, u => u.s.cq.c, us => us.c, (u, us) => new { u, us })
.Where(cq => cq.u.s.cq.c == Utilities.Authentication.c)
.Where(cq => buildStatusOrder.Contains((BuildStatusEnum)cq.u.s.cq.d))
.OrderBy(o => o.u.se.b)
.Select(s => new QueueInfo
{
x = s.u.c,
y = s.u.d,
z = s.u.a
});
queue = queue.OrderBy(f => orderByLambda);
var concat = queue.GroupBy(e => new { e.x, e.y, e.z })
.OrderBy(v => v.FirstOrDefault().segmentID)
.ToList()
.Select(ss => new QueueInfo
{
x = ss.x,
y = ss.y,
z = ss.z,
})
.AsQueryable();
我的代码出了什么问题?而不是
queue = queue.OrderBy(f => orderByLambda);
使用:
关于代码的两个注释:
包含等
nullCheckExpression
和parameterExpression
是什么。一般来说,这不是您将LINQ排序为实体的方式——它应该类似于queue.OrderBy(f=>f.x)代码>-您必须定义所选字段中实际用于排序的字段。(见第1点)
你仍然没有按照哈比卜的建议修复。这是导致错误的那条线。
queue = queue.OrderBy(f => orderByLambda);
queue = queue.OrderBy(orderByLambda);