Entity Framework Core / SQLite:Join 后的 GroupJoin“展平”结果

2023-12-08

使用 Entity Framework Core 2.1 和 SQLite 数据库,如果在另一个 Join 之后使用 LINQ GroupJoin,我会得到不同的行为。目前尚不清楚这是一个错误还是我忽略了某些内容。

我创建了一个最小的 VS2017 项目来重现此内容,可以在此处找到:
https://gitlab.com/haddoncd/EntityFrameworkGroupJoinIssue

在此示例中,我为 Blog 表中的每一行获取一个对象,每行包含多个 PostTitles:

db.Blogs
    .GroupJoin(
        db.Posts,
        s => s.BlogId,
        p => p.BlogId,
        (s, ps) => new
        {
            s.BlogId,
            s.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.BlogId))

但在这个例子中,结果是“扁平化的”——我为每个 Blog-Post 对获得一个对象,就像从传统的 SQL 外连接中获得的一样:

db.Subscriptions
    .Join(
        db.Blogs,
        s => s.BlogId,
        b => b.BlogId,
        (s, b) => new
        {
            s.SubscriptionId,
            b.BlogId,
            b.BlogTitle,
        }
    )
    .GroupJoin(
        db.Posts,
        x => x.BlogId,
        p => p.BlogId,
        (x, ps) => new
        {
            x.SubscriptionId,
            x.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.SubscriptionId))

None

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

Entity Framework Core / SQLite:Join 后的 GroupJoin“展平”结果 的相关文章

随机推荐

  • 通过引用将 $scope 变量传递给函数

    我一直在尝试实现采用范围变量并更改其原始值的函数 但没有成功 var app angular module plunker app controller MainCtrl function scope scope var1 1 scope
  • 使用 Javascript 检查 Flash 播放器版本 [重复]

    这个问题在这里已经有答案了 是否可以使用 Javascript 检查浏览器中安装的 Flash Player 的版本 你可以检查一个例子here
  • C++ getter/setter 编码风格

    我已经使用 C 编程有一段时间了 现在我想温习我的 C 技能 上课情况 class Foo const std string name 最好的方法是什么 我只想允许对 name 字段进行读取访问 使用 getter 方法 inline co
  • UDP 是 IPC 的可靠协议吗?

    如果我纯粹使用 UDP 进行进程间通信 即在 1 个系统中 不涉及网络 我可以认为它可靠吗 或者我还需要担心数据包丢失等问题吗 Note这是一个实际的问题 而不是理论问题 如果不同操作系统的答案有所不同 请解释具体情况 特别是包括 Wind
  • 如何使 NSURLConnection 文件下载工作?

    我有一个 ViewController 声明为 interface DownloadViewController UIViewController
  • 对 JavaScript 中的文档尺寸感到困惑

    我对 JavaScript 中用于获取文档尺寸的不同属性以及如何获取这些数字感到非常困惑 有人可以推荐一个好地方来开始了解我如何获取文档的大小并正确放置内容吗 我会尽量简单地回答 文档和视口 在几何方面 有两组尺寸需要注意 文档尺寸 反映加
  • Android Studio安装后无法启动

    安装Android Studio后 无法启动 但在获取Android SDK组件信息时显示以下错误 Internal error Please report to https code google com p android issues
  • 设置复合索引时出错

    我想在我的 mongoDB 中的 fb id 和 ts 上设置复合索引 所以我做了 PRIMARY gt db sessions ensureIndex fb id 1 ts 1 unique true 但我收到以下错误 E11000 du
  • 打印变量的名称和值

    在调试的时候 我们经常会看到这样的打印语句 print x easy to type but no context print x x more context harder to type 12 x 12 如何编写一个函数来获取变量或变量
  • 在tomcat中部署jar

    可以在 tomcat 中部署一个简单的 jar 并运行它 一个简单的例子 就是执行 main 并打印 hello world P 不 这不对 您必须创建一个包含 jar 和 servlet 至少 的 Web 应用程序 看看这个http do
  • 将端口号绑定到 TCP 套接字(outgoin)以发送数据包

    我知道这并不容易绑定端口号 to TCP套接字你会用来发送数据 因为系统通常将随机端口绑定到套接字 但我读到一篇文章 通过使用一些低层网络可以将端口号绑定到 TCP 套接字然后使用它发送数据的方法吗 有谁知道如何做到这一点 我正在使用c语言
  • 未为右值引用调用 C++ 移动构造函数[重复]

    这个问题在这里已经有答案了 class MyClass public MyClass std cout lt lt default constructor n MyClass MyClass a std cout lt lt copy co
  • Xamarin for Visual Studio 2015 中的配置文件错误(无匹配)

    我正在尝试在 iPhone 上构建 运行 Xamarin Forms PCL 以进行测试和调试 我突然收到以下错误 没有 iOS 签名身份与指定的配置文件匹配 正如您从下图中看到的 它正在寻找的配置文件位于 Mac 上的正确位置 我清除了所
  • 调整cell.UIImageView.image的大小

    我也有不同尺寸的不同图像 我想将其放在每个单元格中的 cell imageView image 中 但我想在每个单元格中制作相同的尺寸 尽管图像具有不同的尺寸 我在我的代码中写下这一点 UIImage image UIImage image
  • 对“Makefile”无需执行任何操作

    我应该为我需要做的项目编写一个 Makefile 我已经完成了所有工作 但是当我尝试这样做时 我得到以下输出 make 对 Makefile 无需执行任何操作 造成这种情况的原因可能是什么 这是我的 Makefile 文件 Makefile
  • 将 GLM 公式设置为 R 中的列总和

    我正在尝试设置公式GLM作为列的集合train train 1 99 model lt glm train 100 train 1 99 data train family binomial 无法找到在 R 中执行此操作的正确方法 如果你需
  • 就浮点而言,是否有正确的常量表达式用于其最高有效位?

    问题 给定一个浮点常量表达式 我们可以编写一个宏来计算一个常量表达式 该常量表达式的值是等于尾数最高位的 2 的幂吗 等效地 这只是小于或等于输入幅度的两个的最大幂 出于这个问题的目的 我们可以忽略 接近溢出或接近下溢值 它们可以通过有限多
  • 图表 x 轴编号

    我正在使用 WinForms 图表来可视化一些数据 我想要 x 轴网格线位于我指定的点处 请看下面的例子 public partial class Form1 Form public Form1 InitializeComponent Ad
  • DBMS 或 SVN 中的集中存储库

    我正在努力建立一个集中存储库来存储企业架构师 来自 sparx 系统 生成的工件 供 6 8 人的团队使用 最初考虑托管 PostgreSQL 数据库来集中存储工件 而出现的另一个选择是使用 SVN 查看 EA 文档 没有清楚地了解所考虑的
  • Entity Framework Core / SQLite:Join 后的 GroupJoin“展平”结果

    使用 Entity Framework Core 2 1 和 SQLite 数据库 如果在另一个 Join 之后使用 LINQ GroupJoin 我会得到不同的行为 目前尚不清楚这是一个错误还是我忽略了某些内容 我创建了一个最小的 VS2