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, 元素选择器:EntityShaperExpression: 实体类型:FileMovement 值缓冲区表达式: ProjectionBindingExpression:EmptyProjectionMember 可空:假
.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
之前使用 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();
关于linq - 无效操作异常 : The LINQ expression 'GroupByShaperExpression:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68242560/