【发布时间】:2020-08-26 17:13:15
【问题描述】:
我有一个示例来查看异步调用,我需要从子查询中获取计数。我知道如何在 TSQL 查询中编写它,但我对 iqueryable 的使用有点困惑。
这是我目前拥有的。我正在获取用户,然后在循环中获取计数。如何在第一个查询中执行循环部分?
public static async Task GetUsers(this List<UserViewModel> users)
{
var db = ApplicationDbContext.Create();
users.AddRange(await (from u in db.Users
select new UserViewModel
{
Id = u.Id,
Email = u.Email,
FirstName = u.FirstName,
LastName = u.LastName
}).OrderBy(o => o.Email).ToListAsync());
if (users.Any())
{
foreach(var user in users)
{
user.SubscriptionsCount = await (from us in db.UserSubscriptions
join s in db.Subscriptions on us.SubscriptionId equals s.Id
where us.UserId.Equals(user.Id)
select us).CountAsync();
}
}
}
【问题讨论】:
标签: c# iqueryable