InvalidOperationException:LINQ 表达式“GroupByShaperExpression:
Posted
技术标签:
【中文标题】InvalidOperationException:LINQ 表达式“GroupByShaperExpression:【英文标题】:InvalidOperationException: The LINQ expression 'GroupByShaperExpression: 【发布时间】:2021-09-15 10:24:24 【问题描述】:fileMovementRepository.GetAll()
.Where(fm => repository.GetAll().Select(f => f.Id).Contains(fm.FileId) && fm.TransferredById == userId)
.Include(f => f.User).Include(f => f.File).ThenInclude(f => f.Category)
.OrderByDescending(f => f.MovedOn)
.GroupBy(f => f.FileId)
.Select(f=>f.First())
.ToList();
运行时显示以下错误
处理请求时发生未处理的异常。 InvalidOperationException:LINQ 表达式'GroupByShaperExpression: KeySelector: f.FileId, 元素选择器:实体形状表达式: 实体类型:文件移动 值缓冲区表达式: ProjectionBindingExpression:EmptyProjectionMember IsNullable: 假
.First()' 无法翻译。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。 Microsoft.EntityFrameworkCore.Query.RelationalSqlTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
InvalidOperationException:无法翻译 LINQ 表达式“GroupByShaperExpression: KeySelector: f.FileId, ElementSelector:EntityShaperExpression: EntityType: FileMovement ValueBufferExpression: ProjectionBindingExpression: EmptyProjectionMember IsNullable: False .First()”。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。
【问题讨论】:
您是否点击了错误消息中的链接? 请查看有关此错误的许多其他问题。不支持此GroupBy
用法。
【参考方案1】:
在GroupBy
之前使用ToList()
,它将按预期工作。
fileMovementRepository.GetAll()
.Where(fm => repository.GetAll().Select(f => f.Id).Contains(fm.FileId) && fm.TransferredById == userId)
.Include(f => f.User).Include(f => f.File).ThenInclude(f => f.Category)
.OrderByDescending(f => f.MovedOn)
.ToList()
.GroupBy(f => f.FileId)
.Select(f=>f.First())
.ToList();
【讨论】:
以上是关于InvalidOperationException:LINQ 表达式“GroupByShaperExpression:的主要内容,如果未能解决你的问题,请参考以下文章
InvalidOperationException:未找到名为“Bearer”的 AuthorizationPolicy
为啥这个 OdbcConnection 会抛出 System.InvalidOperationException?
System.InvalidOperationException: '绑定实例已经被关联到监听
使用 PerformanceCounters 时获取 InvalidOperationException [关闭]