c# - 在 OrderbyDesceding linq 方法 Asp.Net core 2.0 中作为参数的对象列表
问题描述
我有两个模态类:
对话
public long Id public string SenderId public string RecieverId public virtual List<Message> Messages public virtual User User
留言
public long Id public string MessageBody public long ConversationId public string SenderId public DateTime CreatedDate
我想OrderbyDescending
在 Message 上进行所有对话CreatedDate
。
我的意思是对对话进行排序,其中最后一条消息是按创建日期最新的。像:
var conversations = _context.Conversations
.Include(x => x.Messages)
.Include(x => x.Users)
.Where(x => x.RecieverId== userId)
.OrderByDescending(x => x.Messages.Any(x => x.CreatedDate))
.ToList();
但是这样我就不能写OrderByDescending
声明了。
如果可以的话,请给我建议。
希望有人能理解我的观点。
解决方案
您应该按对话中的“最新”消息排序,因此您需要按每条消息中的“最高”日期排序,这是使用 linqMax()
方法实现的。看看它是否可以帮助你:
.OrderByDescending(conversation => conversation.Messages.Max(message => message.CreatedDate)).ToList();
推荐阅读
- python - 身份验证 cookie 不能与 selenium chromedriver 重用
- vba - 保存后执行例程
- video - 如何在 FFMPEG 中加速并排视频拼接
- lektor - lektor live server 没有将更改推送到浏览器
- php - 正则表达式多次出现一个符号
- ssas - SSAS MDX 计算成员在表格模型中的当量
- c++ - 圆形 square.o <- square.o 依赖被丢弃
- digital-ocean - 在 virtualmin 上安装 mautic
- android - jetpack compose,我想要两个空隙来填补剩余的空间,比例是一比二
- c# - 如何使用 HL7-dotnetcore 处理 VARIES 数据类型?