LINQ 使用 OR 连接

2024-02-03

我想使用 OR 语句与 LINQ 进行 JOIN。

这是我开始的 SQL 查询:

SELECT  t.id
FROM Teams t
INNER JOIN Games g 
   ON (g.homeTeamId = t.id OR g.awayTeamId = t.id) 
  AND g.winningTeamId != 0
  AND g.year = @year
GROUP BY t.id

我在将该 ON 子句转换为 LINQ 时遇到问题。这就是我所在的地方:

var y = from t in db.Teams
        join g in db.Games on t.ID equals g.AwayTeamID //missing HomeTeamID join
        where g.WinningTeamID != 0
           && g.Year == year
        group t by t.ID into grouping
        select grouping;

我想我可以使用:

join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)

这可行,但似乎有点老套。有没有更好的办法?


我也为此苦苦挣扎,直到找到以下解决方案,该解决方案非常适合我的情况:

var y = from t in db.Teams
        from g in db.Games
        where
        (
            t.ID == g.AwayTeamID
            || t.ID == g.HomeTeamID
        )
           && g.WinningTeamID != 0
           && g.Year == year
        group t by t.ID into grouping
        select grouping;

在幕后,您的解决方案的工作原理可能与此非常接近。但是,我敢打赌,如果您对它进行基准测试,这个速度会更快一点,因为它不会将第一个数据集中的每个项目与第二个数据集中的每个项目连接起来,如果其中一个(或两个)数据集非常大,这可能会是一场灾难。

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

LINQ 使用 OR 连接 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • Youtube api v3 获取用户视频列表

    使用 Youtube api v2 可以轻松获取视频 只需发送这样的查询 Youtube api v2 还有一个用于构建查询的交互式演示页面 http gdata youtube com demo index html http gdata
  • 正则表达式匹配句子中的第一个单词

    我正在寻找一个正则表达式 它匹配句子中的第一个单词 不包括标点符号和空格 例如 这是一个句子 中的 这个 和 首先 我想说 你好 中的 第一 这不起作用 A Z A Za z r s w 将匹配每个句子中的第一个单词 http rubula
  • 来自错误线程 Android 的领域访问

    我正在 Android 上处理这个问题 来自错误线程的领域访问 Realm 对象只能在创建它们的线程上访问 我想在我的 RemoteViewsFactory 中使用 Realm public class RemoteViewsX imple
  • AttributeError:“NoneType”对象没有属性“_inbound_nodes”Keras

    from Config import Config from FaceDetection MTCNNDetect import MTCNNDetect import cv2 import tensorflow as tf import ke
  • Zend 路线 全部捕获

    请帮忙 我是 Send 新手 想要修改我正在开发的 cms 项目的默认路由 如果控制器不存在 如何在 zend 中创建 捕获所有 路由 我正在尝试创建如下链接 mydomain com slug mydomain com slug1 其中
  • 如何使用 Jackson 序列化基于 java.util.Map 的类

    我有一堂课 看起来像这样 JsonFormat shape JsonFormat Shape OBJECT public class MyMap implements Map
  • 运算符重载 C++:只写版本

    我正在重载数据结构的运算符 因此我有标准函数声明 T operator int i used for regular objects const T operator int i const used for const objects 所
  • 如何禁用 iPhone 上文本输入的拼写检查器

    有时拼写检查器是不必要的 验证码 用户名 电子邮件等 有没有办法在某些文本输入 文本区域禁用它 正如我的好友 Jonathan Stark 所指出的 您应该能够使用自动更正和自动完成等属性来实现您正在寻找的效果
  • 自动对齐双语 Rmarkdown -> LaTeX 文档的文本

    更新 见下文 我正在写一份双语报告 即使用阿拉伯语和英语 使用xelatex引擎 mainfont Arial and lang arYAML 元数据 该文档可以顺利渲染阿拉伯语和英语 经过一段时间后 hustle https stacko
  • Android获取以编程方式创建的视图的宽度

    我以编程方式创建了 TextView 如下所示 TextView mTextView new TextView getApplicationContext final LayoutParams params new TableLayout
  • WPF ListView ScrollBar 可见为 false

    即使需要 是否可以强制水平 或垂直 滚动不显示 问题是我需要根据项目显示不同的颜色 效果很好 但您可以清楚地看到颜色没有到达列表视图的两个边缘 这有点难看 更糟糕的是 我的列表视图中有另一个列表视图 其中包含另一个项目列表 这些项目的背景甚
  • Firefox 中背景图像的过渡?

    我正在尝试为此寻找替代方案 transition background image 1s whatever in firefox因为它只适用于 webkit 浏览器 我已经尝试过不透明度替代方案 但这对我来说不是一个选择 因为我在背景容器上
  • git - 无法拉取或提交

    我在提交和拉取时遇到问题 在提交 IDE 中我看到 warning not all local changes may be shown due to an error unable to read tree 并且只有我的文件提交的一部分在
  • 我可以在我不拥有的类型上使用 DebuggerTypeProxyAttribute 之类的东西吗?

    我有一个IClaimsPrincipal变量 我想看看其中有多少索赔 在监视窗口中导航属性很复杂 因此我想自定义该对象的显示方式 我知道 DebuggerTypeProxy 属性 http msdn microsoft com en us
  • jQuery 美元符号混淆

    我对 jQuery 中的美元符号有点困惑 希望有人能帮助我 我有以下函数声明 function create discussion button click function alert Clicked listitems tr click
  • PHP 的 Curl 无法在 AppEngine 上运行

    在本地 AppEngine 上 curl 请求给出以下结果 这正是我所期望的 url gt https spreadsheets google com feeds spreadsheets private full content type
  • 定时器触发不会触发队列但手动录入会触发-Python

    我有一个队列触发器 当消息手动添加到队列中时 它会启动并按预期运行 但是 当消息通过以下定时器触发函数写入队列时 它无法启动 我可以看到触发器已成功写入消息 init py import datetime import logging im
  • 在 HTTPServlet 请求中编码 UTF-8

    这可能看起来像是一个已经解决的问题 但事实并非如此 因为我已经解决了所有涉及 UTF 8 的问题 但没有一个解决方案对我有帮助 我使用 JSON 简单库向包含 JSON 对象的 java servlet 发送 http 请求 我在Tomca
  • 如何同时针对多种类型专门化方法

    我有这样的代码 template lt class T gt struct Value quite a lot of other functions which I do not want to specialize too void pr
  • LINQ 使用 OR 连接

    我想使用 OR 语句与 LINQ 进行 JOIN 这是我开始的 SQL 查询 SELECT t id FROM Teams t INNER JOIN Games g ON g homeTeamId t id OR g awayTeamId