Entityframework Core 3 linq 表达式无法翻译

2023-11-26

我刚刚升级到 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.Sum(c => Convert.ToInt32(c.Duration.TotalMinutes)),
            })
          .AsNoTracking()
          .ToList();

当我试图将集合与时间跨度和持续时间相加时,就会发生异常......

我现在该怎么处理这个问题?

这是例外

InvalidOperationException:LINQ 表达式 '(EntityShaperExpression: EntityType: StopRecord ValueBufferExpression:(ProjectionBindingExpression: EmptyProjectionMember) IsNullable: False ).Duration.TotalMinutes' 无法翻译。要么以可以的形式重写查询 被翻译,或通过插入显式切换到客户评估 调用 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync()。看https://go.microsoft.com/fwlink/?linkid=2101038为了 更多信息。


EF3 中有一个重大更改,除非在查询链的最后(您的查询链的最后),否则不会自动恢复到客户端评估Convert.ToInt32(c.Duration.TotalMinutes)可能依赖)。

尝试像这样重写您的查询:

 ProductionRecords = _context.ProductionRecords
      .Where(r => r.DataCriacao.Date == DateTime.Now.Date)
        .AsNoTracking()
        .AsEnumerable()
        .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)),
        })
      .ToList();

UPD正如评论中正确指出的那样 - 这基本上会推迟.Select给客户端评价。这可能会导致性能问题。这种行为很可能是对 EF Core 3 进行此更改的首要原因。

我没有足够的细节来向您推荐合适的解决方案,但看来您无法真正摆脱加载StopRecords关于你所有的结果。这就是编写自定义方法翻译器可以为您提供帮助的地方。看我的其他答案关于如何做到这一点。我快速检查了 EF Core 3 源代码,看起来IMethodCallTranslator仍然在那里。这意味着您很有可能构建一个自定义函数,将日期转换为 SQL 中的 TotalMinutes。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Entityframework Core 3 linq 表达式无法翻译 的相关文章

  • 将运算符 << 添加到 std::vector

    我想添加operator lt lt to std vector
  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 动态媒体查询

    我目前正在使用 js jq 调整大小事件 当水平菜单 宽度可变 对于屏幕来说太大时 将 css 规则应用于该菜单 然而 在应用新规则之前 菜单会短暂换行 理想情况下 我想测量菜单宽度并更改媒体查询的断点 media screen and m
  • 内部类访问外部类方法,方法名相同

    我有一个班级和一个内部班级 01 public class A 02 void test 03 public class B 04 void test 05 test 06 07 08 好的 在第05行id喜欢访问A类的方法test 但我陷
  • Mapstruct 映射:如果所有源参数属性均为 null,则返回 null 对象

    如果 Mapping source 中引用的所有属性均为 null 我希望生成的 mapstruct 映射方法返回 null 例如 我有以下映射 Mappings Mapping target id source tagRecord tag
  • 从代码隐藏 C# 中的输入 html 获取值

    我做了一些研究 发现如何从输入 html 文本框中读取值 这对我来说效果很好 但立刻就不起作用了 这是我的代码 它输入 html 返回 null
  • 使用 AppleScript 打开新的 Finder 窗口

    如何在 AppleScript 中打开 Finder 的新窗口 我正在使用 if else 语句来打开一个窗口 我尝试了一个Osascript命令 但它给了我一个语法错误 代码如下 if the button returned of the
  • Git 推送错误预接收挂钩被拒绝

    我已在虚拟机上运行 gitlabhq Rails 服务器 遵循本教程中的 1 6 个步骤https github com gitlabhq gitlab recipes blob master install centos README m
  • 如何将base64格式的图片上传到服务器上

    我有一个问题 我正在服务器上上传图像 但事实并非如此 我已经将图像转换为base64并通过json but json由于这个原因 没有正确关闭 我收到错误 postimage 变量上的错误 ID 在这个变量中 key encode 这是js
  • 如何在 Mac OS X 10.6 上安装 PyQt

    我对 Mac OS X 还很陌生 当我在安装 python 3 1 Qt 4 6 2 和 SIP 4 10 1 后尝试在 Mac Os X 上安装 PyQt 时 在执行 python3 configure py 命令时遇到以下错误 Dete
  • jQuery UI 网站上的垂直“选项卡”组件

    jQuery UI 具有一个漂亮的 垂直选项卡 小部件来在章节之间切换在其自己的网站上 有谁知道这是否建立在某种标准小部件上 你would期望 UI 自己的 选项卡 组件用于此目的 但没有骰子 或者它是否是定制的 粗略地浏览一下代码让我怀疑
  • 使用 dplyr,如何通过管道或链接到plot()?

    我是 dplyr 包的新手 并尝试将其用于我的可视化作业 我可以将我的数据通过管道传输到ggplot 但无法做到这一点plot 我碰到这个帖子包括评论中的答案在内的答案对我不起作用 Code 1 emission lt mynei gt s
  • 拖动多个项目时,此视图不允许 DataGrid“EditItem”

    我有一个数据网格 它获取如下数据 public struct MyData public string name set get public string artist set get public string location set
  • 在 PyQt 中对单选按钮进行分组

    import sys from PyQt4 import QtCore QtGui class Class1 QtGui QMainWindow def init self super Class1 self init self func
  • 如何在日期选择器中将日期格式 (MM/DD/YY) 更改为 (YYYY-MM-DD)

    我有以下日期选择器脚本
  • 如何修复 WordPress 中的“已达到 508 资源限制”错误?

    508 已达到资源限制 Wordpress 此错误一次又一次发生 我无法在没有看到此错误的情况下发布单个帖子 由于超出资源限制 该网站暂时无法满足您的请求 请稍后再试 我该如何解决这个问题 实际上 当进程数量超过托管提供商设置的限制时 就会
  • jQuery.on() 是否适用于创建事件处理程序后添加的元素?

    我一直以来的印象是 on 工作就像 live 关于动态创建的元素 例如我使用 foo on click function alert click 然后是一个带有类的元素foo是由于某些 AJAX 创建的 现在我期望单击该元素会引发警报 实际
  • 如何用 PHP 替换字符串中的变量?

    所以我有一些 PHP 代码 如下所示 message Here is the result s 我只是用 s 作为例子 它基本上是一个占位符 用于存放任何内容 然后我将字符串传递给一个函数 我希望该函数将 s 替换为该值 我需要做什么才能实
  • 如何在 ruby​​ 中使用 utf8 的正则表达式

    在 RoR 中 如何使用 utf8 代码验证发布表单的中文或日文单词 在GBK代码中 它使用 u4e00 u9fa5 来验证中文单词 在 Php 中 它使用 x 4e00 x 9fa5 u 来表示 utf 8 页面 Ruby 1 8 对 U
  • 如何在 JavaScript 中逐行读取文本文件?

    我需要用 JavaScript 逐行读取文本文件 我可能想对每一行做一些事情 例如跳过或修改它 并将该行写入另一个文件 但具体行动超出了这个问题的范围 有很多类似措辞的问题 但大多数实际上是一步将整个文件读取到内存中 而不是逐行读取 因此这
  • 通过电子邮件发送表格

    我需要通过电子邮件发送查询结果 我使用两种方法 获取数据表 执行查询并获取数据表 需要通过邮件发送 发送自动电子邮件 发送自动电子邮件 问题 我需要在电子邮件中发送数据表或 html 表 类似于下面的代码 这对于代替 dataTable 的
  • Entityframework Core 3 linq 表达式无法翻译

    我刚刚升级到 EF 3 曾经有效的查询之一现在出现异常 ProductionRecords context ProductionRecords Where r gt r DataCriacao Date DateTime Now Date