实体框架中的嵌套查询

2024-05-09

我收到以下异常:

不支持嵌套查询。操作 1='案例' 操作 2='收集'

通过这个查询

var Games = context.Games.Select(a => new GameModel
{
     Members = (a.Type == 1 ? (a.UsersInGames.Where(b => b.GameID == a.ID && b.StatusID == 1).Select(c => new Member
     {
         ID = c.UserID,
         email = c.UserInfo.EmailAddress,
         screenName = c.UserInfo.ScreenName
     })) :   
    (a.Teams.Where(b => b.GameID == a.ID).SelectMany(b => b.UsersInTeams.Where(c => c.StatusID == 1)).Select(d => new Member
    {
        ID = d.UserID,
        email = d.UserInfo.EmailAddress,
        screenName = d.UserInfo.ScreenName
    )))
})

当我在选择成员时不包含条件时,查询工作正常。有没有办法可以在查询中执行条件?


您高估了 LINQ 到 SQL 转换的能力。并非所有内容都是可翻译的,并且由于 LINQ 的工作方式,因此不会出现编译器警告。

嵌套集合通常要么 a) 不受支持,要么 b) 最终导致可怕的 SELECT N+1 查询。你要求 EF 做的就是返回一个对象树。SQL 不支持树状结果所以你会遇到对象关系阻抗不匹配的情况,这很痛苦。

我建议您将嵌套集合数据作为第二个完全独立的查询来获取。这使您可以更好地控制并保证有效。

作为一个非必要的旁注,您可能无法说服 EF 在序列上使用 ?: 运算符。这很难翻译。想象一下如何将其编写为 SQL - 非常困难且复杂。

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

实体框架中的嵌套查询 的相关文章

随机推荐

  • 在 Oracle 临时表上放置索引安全吗?

    我读过 不应分析临时表 因为它会破坏其他表的统计信息 指数怎么样 如果我在程序运行期间在表上放置索引 使用该表的其他程序会受到该索引的影响吗 索引是否会影响我的进程以及使用该表的所有其他进程 或者它会单独影响我的过程吗 所有的回复都不是权威
  • 这个功能在 C# 中被称为什么以及 C# 的哪个版本使用此功能

    我在我的项目中使用了这行代码 但还没有看到这个语法 internal static StringBuilder a this StringBuilder sb string b gt sb Append b Append n 谁能告诉我这叫
  • 如何使用基于 Spring MVC 注解的 Portlet 控制器通过 AJAX 呈现 JSON 视图/响应?

    在过去的六个小时里 我在 Google 和 stackoverflow 上搜索了这个问题的答案 我最初是一名 PHP 开发人员 所以请耐心等待 从 PHP 控制器返回 JSON 数组非常简单 我正在使用 Spring MVC 3 0 我只想
  • 运行 npm install 时出错 Error: 404 Not Found: 7zip-bin@~4.1.0

    当我运行 npm install 时 我看到此错误 3 verbose stack Error 404 Not Found 7zip bin 4 1 0 2293 verbose stack at fetch then res C cygw
  • 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

    我下面有一个字符串 它是以英镑为单位的价格 我想删除货币符号 然后将其转换为我可以用来与另一个值进行比较的数字 价格 例如 X gt Y 14 50 我之前已将字符串转换为用于货币的数字 var priceNum parseFloat pr
  • 如何让material-ui文本字段中的标签位于右侧?

    我在用着material ui and typescript对于我的 React 项目 rtl 布局 我不知道如何将文本字段的标签放在右侧 找到了更好的方法without外部库 export const theme createTheme
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 网页抓取(R 语言?)

    我想获取中间栏中的公司名称this http www consumercomplaints in bysubcategory mobile service providers page 1 html页面 以蓝色粗体书写 以及登记投诉者的位置
  • 如何使用 RxJava 处理分页?

    我正在考虑将我的 Android 应用程序转换为使用 Rxjava 进行网络请求 我目前访问的网络服务类似于 getUsersByKeyword String query int limit int offset 据我了解 Observab
  • 在 Swift 2.0 中隐藏 Home 指示器

    我希望隐藏 Home Indicator 虽然这在 Swift 中很简单 但在 SwiftUI 中似乎并不那么容易 我尝试使用这个 如何使用 SwiftUI 隐藏 home 指示器 https stackoverflow com quest
  • 在 HTML SELECT 标记中禁用键盘

    我想禁用 HTML SELECT 标记的键盘 以便用户只能使用鼠标来选择选项 我试过了event cancelBubble true on the onkeydown onkeyup and onkeypress没有运气的事件 有任何想法吗
  • PrintStream是有缓冲的,但是flush不会降低性能,而BufferedOutputStream会加速性能

    我预计由于 PrintStream 是缓冲的 通过在每次 print 之后添加刷新操作 速度性能应该会显着降低 但事实并非如此 如下面的代码片段所示 此外 将 PrintStream 包裹在 BufferedOutputStream 周围可
  • Channel.Security.Error...错误 #2048

    我最近升级到 PHP 版 Flash Builder 4 5 并尝试将发布版本上传到我的远程服务器 当我尝试从应用程序进行 php 调用时 出现错误 Send failednChannel Security Error error Erro
  • Rails 应用程序中的持久 TCP 连接

    我有一个在服务器上运行的第三方应用程序 它对客户端进行身份验证并返回响应 我的问题是 对于我收到 Rails 应用程序的每个请求 我都需要建立 TCP 连接并获取数据 是否可以有一个持久连接 以便我可以减少建立连接的开销 我希望你使用的是
  • Android 视图上的动态气泡

    任何人都可以如何在Android布局上制作可点击的动态气泡 我的设计师对屏幕的想法如下 我的图像中所有气泡都是分配给用户的一组任务 气泡的标签根据任务而变化 1 1 根据我的项目要求 颜色和半径将根据 api 响应而变化 您能建议任何演示或
  • RedGate ReadyRoll 的替代品了吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种经济实惠的 RedGate ReadyRoll 替代方案 以实现 SQL 的持续部署 我
  • Azure PostgreSQL 服务器服务排序规则创建错误

    我正在尝试将当前现有数据库导入到 Azure PostgreSQL 服务器上运行的 postgre 实例 我已经将我的azure postgresql服务器参数配置为使用UTF8编码 我不确定它是否在不重新启动的情况下应用 但即使我没有重新
  • 如何在 phpfarm php 安装上安装 pthreads

    记录我为帮助他人所做的努力 并希望得到一些关于我如何做得更好的反馈 命令pecl install pthreads由于我的 php 安装失败ubuntu 13 04盒子没有配置 zts Options 1 ubuntu存储库没有启用zts的
  • 如何在xampp中启用curl

    我面临下面给出的错误 致命错误 在第 11 行调用 E xampp htdocs new functions php 中未定义的函数curl init 我已经做出了改变php ini 我把前面的分号去掉了 extension php cra
  • 实体框架中的嵌套查询

    我收到以下异常 不支持嵌套查询 操作 1 案例 操作 2 收集 通过这个查询 var Games context Games Select a gt new GameModel Members a Type 1 a UsersInGames