【问题标题】:*Right* outer join in LINQ*右* LINQ 中的外连接
【发布时间】:2010-04-28 15:20:31
【问题描述】:

可以肯定地说在 LINQ 中没有右外连接这样的东西吗?

我知道要有效地创建一个,您只需交换左外连接中的表。但是您可以将 DefaultIfEmpty() 方法应用于等值连接左侧的表以使其成为右外连接吗?

【问题讨论】:

  • 右外连接是右集合中不匹配实体的内连接联合,这在 LINQ 中是可行的。我相信您的问题更多:是否有一个 LINQ 构造实际上由 LINQ 转换为RIGHT OUTER JOIN SQL?就像有一个,GroupJoin() + SelectMany()DefaultIfEmpty(),被翻译成LEFT OUTER JOIN

标签: linq


【解决方案1】:

经过广泛的查找,我找不到任何关于右外连接的内容。外连接唯一可用的语法是左外连接。

【讨论】:

  • 不完全正确 - 外连接的唯一语法是外连接。 LINQ 中没有“左”或“右”连接。
  • @Kirk,如果你说没有类似 SQL 的“right”或“left”关键字,你是对的,但我认为 OP 是说左外连接是可能的,您只需使用 DefaultIfEmpty 以便包含结果。
  • 是的,除了生成的排序顺序之外,它们是等价的。如果您想保留部分左侧的排序顺序,那么您似乎很不走运。
猜你喜欢
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多