在 Linq Select 中创建元组

2024-01-23

我正在使用 C# 和 .NET Framework 4.5.1 使用 Entity Framework 6.1.3 从 SQL Server 数据库检索数据。

我有这个:

codes = codesRepo.SearchFor(predicate)
      .Select(c => new Tuple<string, byte>(c.Id, c.Flag))
      .ToList();

当我运行它时,我收到以下消息:

LINQ 仅支持无参数构造函数和初始值设定项 到实体。

我不知道如何创建元组,因为我找到的所有示例大多都是这样的。

我已经尝试过这个:

codes = codesRepo.SearchFor(predicate)
      .Select(c => Tuple.Create(c.Id, c.Flag))
      .ToList();

并得到这个错误:

LINQ to Entities 无法识别该方法 'System.Tuple`2[System.String,System.Byte] Create[String,Byte](System.String, Byte)'方法,以及这个方法 无法转换为存储表达式。

哪里有问题?


虽然answer https://stackoverflow.com/questions/33545249/create-a-tuple-in-a-linq-select/33545368#33545368 by 奥克塔维奥克 https://stackoverflow.com/users/1394631/octavioccl可行,最好先将查询结果投影为匿名类型,然后切换为可枚举并将其转换为元组。这样您的查询将从数据库中仅检索所需的字段。

codes = codesRepo.SearchFor(predicate)
    .Select(c => new { c.Id, c.Flag })
    .AsEnumerable()
    .Select(c => new Tuple<string, byte>(c.Id, c.Flag))
    .ToList();

Note:上述规则适用于 EF6。 EF Core 通过元组构造函数自然支持元组(在投影中或作为连接/组键),例如原始查询简单有效

codes = codesRepo.SearchFor(predicate)
  .Select(c => new Tuple<string, byte>(c.Id, c.Flag))
  .ToList();

但不是Tuple.Create方法(EF Core 2.x)。

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

在 Linq Select 中创建元组 的相关文章

  • 如何引用 .net 可执行文件中的类?

    IL 反汇编程序显示了我想在项目中使用的 Net 可执行文件中的类 我如何使用我自己项目中的这些类 从 Visual Studio 上的项目添加对该可执行文件的引用 您应该有权访问它定义的公共类 可执行文件是一个像任何其他程序集一样的程序集
  • JQuery、ASCX 和 webmethods 似乎不起作用

    我有一个级联下拉列表 其中 3 个 类型 类别和子类别 首先类型负载 然后选择类型 类别负载以及选择类别 子类别负载 我还有 2 个按钮 添加类别 和 添加子类别 单击这些按钮后 我调用 JQuery 模态表单来添加它们 我在代码后面使用
  • 如何在 ASP.Net Core 6 Web Api 中依赖注入 Microsoft Graph 客户端

    我正在尝试使用 ASP Net Core 6 设置 Web api 以便用户可以到达我的端点 然后我使用特权帐户在 Teams 中执行一些工作 我认为我没有正确连接 DI 部分 因为在向 Teams 发出请求时出现以下错误 MsalUiRe
  • 使用 c11 标准和 clang 来使用 strcpy_s

    我正在运行 OS X Sierra 并尝试编译一个使用的 c 程序strcpy s 但是我安装的 clang 编译器使用的是 c99 标准 但是据我读到的 https embeddedgurus com barr code 2017 08
  • 如何有效地测试action是否用属性(AuthorizeAttribute)修饰?

    我正在使用 MVC 并且有一种情况OnActionExecuting 我需要确定即将执行的Action方法是否用属性修饰 AuthorizeAttribute尤其 我不是问授权是否成功 失败 而是问该方法是否需要授权 对于非 MVC 人员
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • 如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该使用粒子池

    我正在 XNA4 中创建一个粒子系统 但遇到了问题 我的第一个粒子系统是一个简单的粒子列表 其实例是在需要时创建的 但后来我读到了有关使用池的内容 我的第二个系统由一个充满粒子的池和一个发射器 控制器组成 我的池非常基本 这是代码 clas
  • 使用 C# 启动 Outlook

    我可以让 C 在代码中启动 Outlook 吗 在 VB6 中 我们使用对象 Outlook Application 并编写 Set oOutlook CreateObject Outlook Application Set oNameSp
  • 使用 Rhino Mocks 模拟集合

    所以我猜这是很多人想做的事情 模拟集合 过去我用 Rhino 做过这样的事情 var col mock MockRepository GenerateMock
  • std::string substr 方法问题

    你好 我正在写这个方法 我希望它从给定缓冲区中提取给定位置的一部分 我有一个像这样的字符串something one something two我想要得到 一个 这是我的想法 static std string Utils getHeade
  • 如何转换 UTF-8 <-> UTF16 可移植

    有没有一种简单 可移植的方法 至少是 win32 linux 将 UTF 16 转换为 UTF 8 并返回 最好使用升压 谢谢你的帮助 托比亚斯 Both libiconv http www gnu org software libicon
  • 如何声明返回相同类型的 Func Delegate 的 Func Delegate?

    我想编写一个方法 该方法可以完成一些工作 并最终返回另一个与原始方法具有相同签名的方法 这个想法是根据前一个字节值顺序处理字节流 而不进行递归 通过这样调用它 MyDelegate executeMethod handleFirstByte
  • 是否有普遍接受的 GMP 替代方案来实现任意精度? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在寻找 BigInt 库的过程中 我发现了这篇文章 Microsoft Windows 上的 C 或
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • 如何在不加载到内存的情况下对大型 csv 文件进行排序

    我有 20GB csv 文件 如下所示 CallId MessageNo Information Number 1000 1 a 2 99 2 bs 3 1000 3 g 4 66 2 a 3 20 16 3 b 1000 7 c 4 99
  • nVidia 和 ATI 之间的 OpenGL 渲染差异

    最近 我将 ATI 驱动程序 我使用的是 HD7970 更新为最新版本 但我的 OpenGL 项目的一些对象停止工作 更重要的是 他们适用于 nVidia 最新驱动程序 在 960m 上测试 ATI 和 nVidia 渲染管道之间有什么我应
  • TransactionScope 在某些机器上自动升级到 MSDTC?

    在我们的项目中 我们使用 TransactionScope 来确保我们的数据访问层在事务中执行其操作 我们的目标是not要求在我们的最终用户的计算机上启用 MSDTC 服务 问题是 在我们一半的开发人员机器上 我们可以在禁用 MSDTC 的
  • 即使没有任何转换,也违反了 C 中的严格别名?

    How can i and u i在此代码中打印不同的数字 即使i定义为int i u i 我只能假设我在这里触发了 UB 但我不知道具体是如何触发的 ideone演示 http ideone com Gcv5Xm如果我选择 C 作为语言
  • C# p/Invoke 如何使用 DirectX 游戏的 SendInput 模拟 keyPRESS 事件

    我经常为各种机器人或其他 GUI 自动化程序模拟键盘按下事件而苦苦挣扎 我已经成功地使用以下方法模拟按键事件 INPUT kInput new INPUT 1 kInput j type SendInputEventType InputKe

随机推荐

  • xib 文件的 iPhone 本地化

    我刚刚熟悉 xib 文件的本地化 想知道是否有一种方法可以通过直接引用 plist 来本地化 xib 中的字符串 欣赏一些想法 如果您不想直接本地化 xib 文件 则可以将它们包含的文本提取到 strings 文件中 并且在翻译 strin
  • 如何使用node.js测试文件权限?

    如何检查正在运行的 Node js 进程对给定文件的权限 读 写 执行 我希望fs Stats object http nodejs org docs latest api fs html fs class fs stats有一些有关权限的
  • Django 外键值的精确匹配

    class Sentence Model name CharField class Tokens Model token CharField sentence ForeignKey Sentence related name tokens
  • 如何在 android 中模拟 Kotlin 对象?

    我在 kotlin 中有一个对象控制当前用户的会话信息 我想模拟有回调的登录方法 在测试时 我需要在 SessionController 对象中模拟此方法 object SessionController fun signIn userna
  • Java (J2SE) DTMF 音调检测

    我正在尝试执行以下操作 我正在使用我的 java 应用程序给另一个人打电话 已经完成并且工作正常 然后我正在播放录音 例如 请按 1 一继续英语 已经完成且工作正常 现在我想检测那个人按 1 根据我在 google 搜索中的研究 我发现这可
  • 如何在 Excel 中将 hhmmAM/PM(无空格)格式化为时间 hh:mm AM/PM?

    我正在开发一个薪资项目 为了提高数据输入效率 我希望以 hhmmAM PM 格式输入时间 没有空格或冒号 最好只输入 a p 而不是 AM PM 并将其转换为标准带有冒号和空格的时间格式 谢谢 这是一个为列编码的小宏A 可以对其进行修改以处
  • 增加火花任务大小[重复]

    这个问题在这里已经有答案了 当我在 Spark Shell 中执行代码时遇到问题 Stage 1 gt 0 0 16 17 01 13 06 09 24 WARN TaskSetManager Stage 1 contains a task
  • 如何处理“超出最大存储过程、函数、触发器或视图嵌套级别(限制 32)”。

    我被要求创建脚本 希望运行它的人提供员工 ID 找到所提供的员工任意深度监督的所有员工 我的代码是 CREATE FUNCTION dbo GetNames V uniqueidentifier RETURNS OldNames TABLE
  • 为什么 R 的重复数据在排序数据上表现更好?

    在比较答案中两个函数的效率时检查列表是否包含 R 中的另一个列表 https stackoverflow com a 39350733 4408538 我偶然发现了一个有趣的结果 排序大大提高了效率duplicated当向量很大时 这让我感
  • 在 PropertyGrid 中设置只读属性将所有属性设置为只读

    我正在使用一个PropertyGrid控件来编辑我的类属性 并且我尝试根据其他属性设置将某些属性设置为只读 这是我班级的代码 Imports System ComponentModel Imports System Reflection P
  • Redis 和 Node.js 以及 Socket.io 问题

    我刚刚学习 redis 和 node js 有两个问题我找不到任何令人满意的答案 我的第一个问题是关于在 Node js 中重用 Redis 客户端 我找到了这个问题和答案 如何在socket io中重用redis连接 https stac
  • 比较两个数组并找出差异

    我需要比较两个数组并获得差异 背景 第一个数组将列出文件夹中的文件 第二个数组将读取文件的内容并存储在数组中 第一个数组的输出将是 a b c d e 第二个数组的输出将是 a b c e 我如何比较这两个有差异的数组 我想要的最终输出是
  • java数组循环遍历

    我有一个包含 1 2 3 4 5 值的数组 array a 1 2 3 4 5 现在我想以循环方式遍历它 就像我想打印 2 3 4 5 1 或 3 4 5 1 2 或 5 1 2 3 4 等等 任何算法关于这个 Edit 我想以循环方式打印
  • 后台服务科尔多瓦离子应用程序。 Backgroudn 插件无法在 ios 8.3 上运行

    我想实现一个后台服务 将地理位置发送到服务器 因此我使用了插件 cordova plugin background modehttps github com katzer cordova plugin background mode htt
  • asyncio - 重新引发任务异常

    我正在使用 asyncio 进行一些 TCP 通信 我有一个Receive 函数的作用是read 无限循环中 这作为后台任务运行 使用asyncio create task Receive 现在 如果连接被对等方关闭 则会引发异常 或者可能
  • 增强数据结构而不浪费内存

    我有课Tree我想将其扩充为更专业的数据结构 例如Order tree and Interval tree 这些增强功能需要添加Node 例如大小信息 以及对某些算法的微小更改 我想知道在 C 中实现性能 可读性和可维护性方面的增强的最佳方
  • Quickbooks API - 如何使用存储的信用卡创建费用

    我想知道如何使用存储的信用卡创建费用 使用 card api 我已成功将卡存储在 QuickBooks Online 中并收到返回的卡 ID 现在我想对存储的卡进行收费 为了创建费用 我发现有两种提供卡详细信息的方法 提供明确的卡详细信息
  • 变换路径和重绘不起作用

    我有一次创建的路径 并向其中添加了 React 在某些情况下 我将路径偏移Path offset or Path transform 然后使我的画布无效以重新绘制路径 但路径并没有在新的地方重新绘制 我通过使用检查了路径边界Path com
  • 如何在通过curl触发构建时设置Jenkins构建描述?

    我正在尝试设置我正在触发的构建的构建描述 因为我正在启动构建 但到目前为止我还没有运气 我遇到了一个解决方案 将文本添加到 Jenkins 远程 API 触发的构建页面 https stackoverflow com questions 1
  • 在 Linq Select 中创建元组

    我正在使用 C 和 NET Framework 4 5 1 使用 Entity Framework 6 1 3 从 SQL Server 数据库检索数据 我有这个 codes codesRepo SearchFor predicate Se