我需要获取当前用户作为参与者的聊天,并且只想获取活跃用户。
我执行以下查询:
var query = _db.Chats
.Include(c => c.Participants.Where(cu=>cu.IsActive))
.Include(c=>c.LastMessage)
.ThenInclude(m => m.Sender)
.ThenInclude(cu => cu.User)
.Where(c =>
c.Participants.Any(cu => cu.UserId == _currentUser.MessengerUserId))
.OrderByDescending(c => c.LastMessage != null ? c.LastMessage.Timestamp : c.Created)
.AsNoTracking();
但是参与者过滤部分不起作用——所有用户都被包括在内,而它在“仅选择与当前用户作为参与者的聊天”条件下按预期工作。