Entityframework Core 3 linq表达式无法翻译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Entityframework Core 3 linq表达式无法翻译相关的知识,希望对你有一定的参考价值。
我刚刚升级到EF 3,并且我曾经使用的查询之一现在提供了例外
ProductionRecords = _context.ProductionRecords
.Where(r => r.DataCriacao.Date == DateTime.Now.Date)
.Select(pr => new ProductionRecordViewModel
Id = pr.Id,
Operador = pr.Operador,
DataCriacao = pr.DataCriacao,
Celula = pr.Celula.Name,
Turno = pr.Turno.Name,
TotalPecasSemDefeito = pr.ReferenceRecords.Sum(c => c.Quantity),
TotalPecasComDefeito = pr.DefectRecords.Sum(c => c.Quantidade),
TotalTempoParado = pr.StopRecords pr.StopRecords.Sum(c => Convert.ToInt32(c.Duration.TotalMinutes)),
)
.AsNoTracking()
.ToList();
当我尝试将集合与时间跨度和持续时间相加时发生例外。...
我现在应该如何处理?
这里是例外
InvalidOperationException:LINQ表达式'(EntityShaperExpression:EntityType:StopRecordValueBufferExpression:(ProjectionBindingExpression:EmptyProjectionMember)IsNullable:False).Duration.TotalMinutes'无法翻译。可以使用以下形式重写查询:进行翻译,或通过插入来明确切换到客户评估调用AsEnumerable(),AsAsyncEnumerable(),ToList()或ToListAsync()。参见https://go.microsoft.com/fwlink/?linkid=2101038更多信息。
[EF3中发生了重大变化,除非在查询链的最后(您的Convert.ToInt32(c.Duration.TotalMinutes)
可能依赖于此),否则EF3不会自动恢复为客户端评估。
以上是关于Entityframework Core 3 linq表达式无法翻译的主要内容,如果未能解决你的问题,请参考以下文章
使用 EntityFramework.Core 从自引用表加载完整的层次结构
从零开始学 ASP.NET Core 与 EntityFramework Core 目录
带有标识 2 和 EntityFramework 6(Oracle)的 ASP.NET Core MVC