有必要从数据库中下载对话实体以及最后一条消息。此代码不起作用:
_dbContext.Dialogs
.Where(_ => _.Users.Any(ud => ud.ApplicationUserId == userId))
.Include(_ => _.Messages.Where(m => m.Id == _.Messages.Max(mm => mm.Id)))
.ToListAsync();
错误:The Include property lambda expression is invalid. The expression should represent a property access: 't => t.MyProperty'.
如何在一个请求中下载仅包含最新消息的对话框?
如果只有一个条件,可以展开连接:
对于更复杂的情况,您可以加载匿名类:
PS 这是这样一个检查 -
m.Id == _.Messages.Max(mm => mm.Id)有一天它会成为性能杀手,小心它。