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:密钥选择器:f·FileId,ElementSelector:EntityShaperExpression:实体类型:FileMovement ValueBufferExpression: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:密钥选择器:f·FileId,ElementSelector:EntityShaperExpression:实体类型:FileMovement ValueBufferExpression:ProjectionBindingExpression:EmptyProjectionMember IsNullable:False。无法翻译“First()”。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList’或“ToListAsync”的调用显式切换到客户端求值。请参阅https://go.microsoft.com/fwlink/?linkid=2101038了解更多信息。
2条答案
按热度按时间lfapxunr1#
在
GroupBy
之前使用ToList()
,它将按预期工作。z2acfund2#
我有一个类似的情况下,并与提供的例子,它失败了
因为f.Id不可为空,而fm.FileId可为空。我创建了一个List<int?>在查询和主查询工作之前。