如何解决LINQ查询以按最旧的ID进行选择
我遇到了选择项目的问题。现在,我正在使用以下查询:
var eventQuery = dbContext.ClientEvents
.Where(f => f.ClientEventStatusLogs.Any(e => e.StatusId == 2))
.Select(TransformEvent());
ClientEvents
是事件列表,每个事件可以有另一个ClientEventStatusLogs
列表。该查询在大多数情况下都能正常工作。但是,如果我对此事件有新的ClientEventStatusLogs
且StatusId
不是2,由于任何原因,它仍会给我这个ClientEvent
。 ClientEventStatusLogs
有日期列,因此我只想查看if StatusId == 2
中的最新日志。
希望您能理解我的问题。
解决方法
听起来像你想要的
dbContext.ClientEvents.Where(
f => f.ClientEventStatusLogs
.OrderByDescending(e => e.Date)
.FirstOrDefault()?.StatusId == 2)
只需将Date
更改为日期属性名称即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。