【发布时间】:2022-01-24 12:07:35
【问题描述】:
results = await query
.GroupJoin(_invitations.GetAll().AsNoTracking()
.Where(i => i.GroupId == groupId),
user => user.Id,
invitation => invitation.UserId,
(a, s) => new { User = a, Invitation = s})
.SelectMany(
ai => ai.Invitation.DefaultIfEmpty(),
(a, s) => new { Users = a.User, Invitations = s }
)
.Select(i => i.Users)
.Skip(skip)
.Take(take)
.ToListAsync();
你好。我有非常简单的群组加入,但我不知道如何在这个群组加入中对邀请进行排序。问题是,我不想做简单的 orderBy(i => i.creationDate) 但我想做类似的事情(但可查询):
var list = new List<string> {"Fall","Mid","Spring"};
return _db.MiaLog1A.Where(m => m.Campus == selectedCampus)
.AsEnumerable()
.OrderBy(m => m.StudentName)
.ThenBy(m=> list.IndexOf(m.Term));
我需要按特定的字符串对它们进行排序。因为我有一个场景,最新的邀请不是我需要的。我想先接受邀请状态。有没有办法做到这一点? 我试过这样的事情: .OrderBy(i => sortOrderList.IndexOf(i.InvitationsStatus) 在很多地方,但它只是抛出。
提前谢谢你。
【问题讨论】:
-
只是抛出什么? “无法翻译查询”?如果我们很好地了解您的输入是什么以及您期望输出是什么,那么我们编写查询可能会更容易。没有它,我们可能只能尝试修复失败的尝试,这可能不是最理想的
-
它抛出查询无法翻译。所以我需要获取用户列表。那就是查询。但另外我需要他们的邀请状态。不幸的是,他们中的一些人收到了不止一份邀请。我需要获得“批准”作为组加入的第一个。在这种情况下,按日期排序将不起作用,因为在批准后可能会添加“待定”状态。因此,组加入的输出应按“已批准”、“待定”、“未邀请”等字符串排序。