在 EF6 中将匿名类型转换为 IEnumerable<>

2024-02-02

我正在使用实体框架开发 MVC 应用程序。我想从表中获取 5 列并将它们返回到一个IE可枚举类型。我的代码是:

IEnumerable<MST> n = new List<MST>();
n = db.MSTs.Select(x => new { x.Id, x.Code, x.Desc, x.L1, x.L2 }).OrderBy(h => h.Code).ToList();

但这给了我错误

无法隐式转换类型 'System.Collection.Generic.List<Anonymous#1>' 到 'System.Collection.Generic.IEnumerable<<MST>>'

我该如何解决?


首先你不需要ToList()因为你不需要列表:

db.MSTs
  .Select(x => new { x.Id, x.Code, x.Desc, x.L1, x.L2 })
  .OrderBy(h => h.Code)

现在你需要的类型是MST。如果这是 EF 知道的类型,您可以将其直接包含在Select:

db.MSTs
  .Select(x => new MST{ Id = x.Id, Code =x.Code, Desc = x.Desc, L1 =x.L1, L2 =x.L2 })
  .OrderBy(h => h.Code)

但事实并非如此,因此您需要从 EF 中断到内存中AsEnumerable然后创建MST在那之后:

IEnumerable<MST> n = db.MSTs
  .Select(x => new { x.Id, x.Code, x.Desc, x.L1, x.L2 }).OrderBy(h => h.Code)
  .AsEnumerable()
  .Select(x => new MST{ Id = x.Id, Code =x.Code, Desc = x.Desc, L1 =x.L1, L2 =x.L2 });

(如果出于某种原因您确实需要ToList()你可以用它来代替AsEnumerable(),但你可能最好只进行决赛ToList()毕竟,获得您真正想要的类型的列表)。

如果您使用异步代码,那么我们同样会将其放在等待之后:

IEnumerable<MST> n = (await db.MSTs
    .Select(x => new { x.Id, x.Code, x.Desc, x.L1, x.L2 })
    .OrderBy(h => h.Code)
    .ToListAsync())
  .Select(x => new MST{ Id = x.Id, Code =x.Code, Desc = x.Desc, L1 =x.L1, L2 =x.L2 });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 EF6 中将匿名类型转换为 IEnumerable<> 的相关文章

  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 发送 POST 请求时 JSON 原语无效

    我有以下 ajax 请求 其中我尝试将 JSON 对象发送到服务器 function sendData subscriptionJson ajax type POST url Url Action SubscribeSecurities S
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • Django UserCreationForm 自定义字段

    我正在尝试创建用户注册表单并添加一些自定义字段 为此 我对 UserCretionForm 进行了子类化并添加了字段 如 django 文档中所示 然后我根据这个表单创建了基于函数的视图和模板 现在 我可以成功创建用户 并且该用户已按预期添
  • jQuery - 使用 .getHours() 方法将 1-24 小时更改为 1-12 小时?

    Fiddle http jsfiddle net bnsex 1 http jsfiddle net bnsex 1 我想在这段代码中使用 12 小时制 document ready function setInterval functio
  • Java byte[] 到字符串转换输出字节

    在我的代码中 我通过互联网发送一个编码为字节数组的 txt 文件 然后在另一端将消息转换回并显示它 问题是 当我尝试显示它时 它总是显示为 B 1ef9f1d 或 B 1764be1 等 这是接收数据的地方 private void par
  • C语言UART通信(十六进制)

    我想向写入函数发送一个十六进制值 例如 0 90 这是因为需要通信的设备接收到的是十六进制数的命令 未使用的变量在测试时出现 并注释为丢失十六进制值 稍后将被删除 如何编写具有字符串以外的十六进制值的写入函数 对于初学者 请告诉我们如何通过
  • Ransack:如何使用不同的别名多次连接表?

    假设我有 items 与 has many 与 properties 关联 那么我可以像这样搜索具有名称为 a name 和值 a value 的属性的所有项目 q properties name eq a name properties
  • C - 指针初始化,星号位置[重复]

    这个问题在这里已经有答案了 放置星号的最正确方法是什么 为什么 1 type var 2 type var 只要您只声明一个指针 这并不重要 它通常像第二个示例一样编写 在我通常读 写的代码中 但对于编译器来说是相同的 如果您声明多个指针
  • 目标 C:如何解决代码中的泄漏(来自仪器的结果)

    我为我的应用程序运行了仪器 其中包含 UITableView 并得到了以下结果 每次单元格变得可见时 单元格将调用方法 UICustomButton SetButtonWithAnswer 编辑 添加了更多屏幕截图 问题是我不确定到底是什么
  • 将计算列添加到 pandas 数据框中

    我对 Python pandas 和一般编程完全陌生 我无法弄清楚以下内容 我在 pandas 的帮助下访问了数据库 并将查询中的数据放入数据框 df 中 其中一列包含生日 可以采用以下形式 1980 年 1 月 25 日 字符串 01 2
  • CYPHER 查询中的 LIKE 子句

    Cypher 查询似乎不支持 LIKE 是否有任何其他构造可以执行相同的任务 例如 start n node where n Name LIKE SUBSTRING return n Name n 使用正则表达式 http neo4j co
  • “%H:%M”格式的时间增量

    有一种方法可以转换timedelta列转换为 H M 格式的字符串 我什至需要这个timedeltas超过24小时 我想这样做是为了制作一个可在类似电子表格的软件 excel google Sheets 中使用的 csv 文件 没有任何内置
  • Nodejs for 循环并等待循环完成

    我有以下代码 Marks all users which are reading the book with the bookId var markAsReading function bookId cb User find functio
  • 詹金斯转义 sed 命令

    有人可以为我在 Jenkins groovy 脚本中转义这个 sed shell 命令吗 So hard sh sed s AssemblyInformationalVersion 1 productVersion 3 g Assembly
  • 如何确定Android .so文件的ABI(即armeabi或armeabi-v7a)?

    我有一个由第三方供应商提供的 so 文件 该文件将包含在我的 Android 应用程序中 我无法访问源代码 也无法 轻松 联系供应商 有没有办法让我通过检查 so 文件来确定它是否是针对armeabi or armeabi v7a ABI
  • 如何使用其他表中的列/字段对 PostgreSQL 表进行集群

    我想根据其他表中的信息对 PostgreSQL 表进行聚类 想象一下两张桌子 foos id baz id name and bars foo id name bars foo id是一个外键引用foos id 我想对 bar 表进行聚类
  • 我可以访问来自不同语言环境的 android 资源吗?

    我的应用程序中有两个区域设置 我可以访问资源 例如来自不同语言环境的字符串数组而不更改当前语言环境吗 我的意思是 对于编码 我不喜欢在 设置 中更改它 更好的解决方案是 如果您使用的是 API 17 NonNull protected St
  • 在包安装期间执行 R 脚本

    希望这有一个简单的答案 但我还没有找到它 我正在编写一个 R 包 当安装在 Windows 上时 我希望它执行一个搜索系统文件的脚本 即list files path C Program Files 然后将该路径保存到包目录作为文本文件以供
  • 使用 jquery 将 html 表格转为 excel

    我有这个有效的 jquery 函数 但我需要添加一些东西 我在桌子上设置了一个过滤器来隐藏列 当我隐藏列并单击导出时 它无论如何都会使用所有字段 如何只导出未隐藏的表列 var write to excel function var uri
  • 使用 ggplot 在 R 中创建堆积百分比条形图

    我一直在寻找一种方法 能够根据受访者的性别分类 将堆积条形图响应显示为百分比值 我成功地使用变量 性别 进行填充创建了堆积条形图 但我希望该图显示该变量之间的比例 我知道使用 count sum count 和 scale y 可以更改 y
  • 使用WCF上传文件

    我需要一个 WCF 服务来由用户上传大文件 以下哪一项提供了更优化的性能 OperationContract public void UploadFile Stream inputsreaam or OperationContract pu
  • 在 EF6 中将匿名类型转换为 IEnumerable<>

    我正在使用实体框架开发 MVC 应用程序 我想从表中获取 5 列并将它们返回到一个IE可枚举类型 我的代码是 IEnumerable