C# 和 LINQ:按嵌套查询的值对查询进行排序

2023-12-07

我正在 ASP.NET 中编写一个简单的论坛,该论坛位于 C# 的实体框架数据库之上。

Each Topic对象具有导航属性Posts指向一个集合Post对象。每个Post对象有一个属性When这表明该帖子的发布时间。

Post.Parent是类型Topic. Post.Identifier and Topic.Identifier是类型Int32. Only Post has a When财产;Topic没有这样的财产。Topic.Parent是第三种类型Forum它所引用的Identifier.

我的问题是这样的:我似乎找不到一种方法来对所有主题对象进行排序last每个主题中发布的帖子。我试过这个:

var topics = from t in context.Topics
             from p in a.Posts
             where t.Parent.Identifier == forum.Identifier
             orderby p.When descending
             select t;

但我得到了重复的Topic对象和排序是not按最新发布日期降序排列。

然后我尝试了这个:

var topics = (from t in context.Topics
              let lastPost =
                  (from p in context.Posts
                   where p.Parent.Identifier == a.Identifier
                   orderby p.When descending
                   select p).FirstOrDefault().When
              where t.Parent.Identifier == forum.Identifier
              orderby lastPost descending
              select t).Distinct();

它消除了重复的问题,但仍然没有排序。我什至尝试过另一个问题的建议:

var topics = (from t in context.Topics
              let posts = context.Posts.Where(p => p.Parent.Identifier == t.Identifier)
              let lastPost = posts.OrderByDescending(p => p.When).FirstOrDefault()
              where t.Parent.Identifier == forum.Identifier
              orderby lastPost.When descending
              select t);

不确定下一步要尝试什么;我似乎忘记了这些更高级的 LINQ 表达式。有任何想法吗?


这应该有效:

var topics = from t in context.Topics
             where t.Parent.Identifier == forum.Identifier
             let lastPost = t.Posts.OrderByDescending(p => p.When).First()
             orderby lastPost.When descending
             select t;

(假设一个Topic总是有一个或多个Post)

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

C# 和 LINQ:按嵌套查询的值对查询进行排序 的相关文章

随机推荐

  • 如何声明一个可以被每个方法使用的变量? | C#

    我想问一下如何声明一个可以被所有方法使用的变量 我尝试将方法的访问类型公开 但这不允许我在其他方法中使用它的变量 此外 我基本上想通过不同的方法累积具有不同值的变量 这就是我问这个的原因 NOTE 我想避免创建任何静态类 EDIT 例如 我
  • 我如何知道 Flex DataGrid itemRenderer 中的按钮何时被单击?

    我有一个显示几列数据的 DataGrid 组件 它还有一个附加列 显示一个按钮 允许用户对记录执行操作
  • Pandas 中通过多个分隔符将一列拆分为多列

    给定一个数据框如下 player score 0 Sergio Ag ero Forward Manchester City 209 98 1 Eden Hazard Midfield Chelsea 274 04 2 Alexis S n
  • MongoDB-CR 身份验证失败

    我在验证用户身份时收到以下错误 purchase user purchase 失败 MongoDB CR 身份验证失败 当我通过浏览器访问 Web 服务时 用户文档中缺少凭据 但我能够从 mongo 验证 buy user 它返回 1 转到
  • 在 WooCommerce 中将爱尔兰的邮政编码结帐字段设置为必填字段

    在 WooCommerce 结帐页面中 我希望将邮政编码字段 爱尔兰爱尔兰代码 更改为必填字段 默认情况下 当所选国家 地区为爱尔兰时 这是可选字段 我只是想知道是否有办法将其更改为必填字段 并在 Eircode 旁边有一个小红星来表示它是
  • 如何在R中快速组合60个矩阵

    我在 R 中有 60 个矩阵 名为 mat1 mat2 mat60 我想使用 rbind 将它们组合成一个大矩阵 我知道我可以写一些类似的东西 matList lt list mat1 mat2 mat60 rbind matList 但这
  • 如何使用FileSavePicker保存现有的StorageFile?

    我正在尝试将现有文件保存到另一个地方 这是某种副本 但我想允许用户使用 FileSavePicker 选择新的目的地 这是我的代码 StorageFile currentImage await StorageFile GetFileFrom
  • 我可以在 Windows XP SP2 上使用哪些免费的 Powershell 编辑器?

    我家里有 Windows 7 和 Powershell 2 我非常喜欢免费版本的 PowerGUI Powershell 编辑器 我想在工作中开始使用 Powershell 但我们使用的是 XP SP2 上的 1 o 版本 我本来打算安装
  • 对 2 个相互依赖的表进行复杂的 SQL 更新

    我有一个数据库 其中有几个表跟踪电话 短信 数据和津贴 我正在尝试计算是否可以在不诉诸游标的情况下将电话分配给津贴 但我无法找到一种方法构造 SQL 来执行此操作 我的尝试没有得到任何有用的 SQL 因为我似乎不知道如何处理它 问题是 对我
  • lxml xpath 不会忽略“ ”

    我有这个 HTML td class 0 b Bold Text b nbsp a href a td td class 0 Regular Text nbsp a href a td 当使用 xpath 格式化时 new html tre
  • Android、Java 上的单选按钮列表

    我需要创建一个单选按钮列表 但如果我尝试使用 ListView 来完成此操作 我可以同时选择所有单选按钮 但我需要同时选择 1 个单选按钮 因此 我可以尝试这段代码 RadioGroup group new RadioGroup this
  • 使用 FCM 从服务器发送推送通知

    最近我问了一个关于使用GCM发送推送通知的问题 向 Android 发送推送通知 现在有了FCM 我想知道它与服务器端开发有什么不同 就编码而言 它们相同吗 在哪里可以找到显示从服务器向 Android 设备发送推送通知的示例 FCM 代码
  • 有没有办法在 Lightswitch 中基于下拉菜单创建搜索屏幕

    我想在搜索屏幕上的搜索框所在位置放置一个下拉列表 并将每个条目与不同的查询相关联 这是针对我的业务中使用的数据库 我们目前有太多屏幕 例如 所有设备 新设备 可用设备 出售设备 未付费设备 未付佣金 我正在使用 2012 RC 的 Ligh
  • 字符串重复被连字符替换C++

    我是编码的初学者 正在尝试这个问题 用连字符替换字符串中字母的所有重复 即 ABCDAKEA 将变为 ABCD KE 我使用了 switch 循环并且它有效 但我想让它更短 也许使用递归来使其更有效 有任何想法吗 include
  • iOS 绘制两端弯曲的矩形

    想象一个长矩形 尺寸可能为 200x20 所有侧面都有直边 在我的 iOS 应用程序中 这对我来说很容易绘制 CGContextFillRect context CGRectMake xLoc yLoc 200 20 现在 如果我希望较短的
  • 如何使用 Android 从 NFC 标签检测制造商?

    我正在尝试检测 NFC 标签的制造商名称 我找到了制造商代码here 但我只能使用这些 ID 检测 Mifare Ultralight C 标签 Ultralight C 标签 ID 的第一个字节代表制造商代码 但其他标签不包含此属性 Th
  • Typescript:通用类型“提取具有 X 类型值的键”的行为不符合预期

    我定义了以下泛型类型 它从类型 T 中提取值为数字的字符串键 type StringKeysMatchingNumber
  • href="tel:" 和手机号码

    如果我使用tel 我应该写国际电话代码 就像这样 a href 61709 a 到目前为止 一切都很好 但我找不到有关如何以 国际 方式书写手机号码的信息 如果有的话 拨打您所在国家 地区的号码时 您仍然需要拨打国内长途电话号码在其余数字之
  • 使用 Xampp 运行 Python 脚本

    我正在使用 python 2 7 13首先 浏览器显示原始代码 我做了什么 编辑httpd conf AddHandler cgi script cgi pl asp py 在我所有脚本的顶部我添加了以下内容 j Installeds Py
  • C# 和 LINQ:按嵌套查询的值对查询进行排序

    我正在 ASP NET 中编写一个简单的论坛 该论坛位于 C 的实体框架数据库之上 Each Topic对象具有导航属性Posts指向一个集合Post对象 每个Post对象有一个属性When这表明该帖子的发布时间 Post Parent是类