![](/img/trans.png)
[英]Accesing object properties held in List<T> after LINQ group by procedure
[英]Can't select properties after group by in linq query
我有兩個表,Organization 和 ApplicationUser。 它們之間的關系是一對多。 這意味着一個組織可以有多個用戶。 現在我需要編寫一個查詢來顯示一些組織屬性以及每個組織的總用戶數。 我正在嘗試編寫查詢。 但是在 GroupBy function 之后,每當我嘗試獲取屬性時,什么都沒有。 這是查詢:
var lists = await (from org in _dbContext.Organizations.AsNoTracking()
join dept in _dbContext.Departments.AsNoTracking() on org.Id equals dept.OrganizationId into orgDeptTemp
from orgDept in orgDeptTemp.DefaultIfEmpty()
join user in _dbContext.ApplicationUsers.AsNoTracking() on org.Id equals user.OrganizationId into orgUserTemp
from orgUser in orgUserTemp.DefaultIfEmpty()
group org by org.Id into orgGroupTemp
select new OrganizationDto
{
OrganizationId = orgGroupTemp.Key,
OrganizationName = orgGroupTemp.Key.......,
TotalUsers = How to get the total user
})
.ToListAsync();
在 SQL 中,GROUP BY 之后唯一可用的列是組鍵和聚合列。 您需要將它們逐行添加到組中。 例如,按組織 ID 和名稱分組
假設您的 model 設置正確,請使用導航屬性
var query = from org in _dbContext.Organizations
where org.Departments.Any(d => d.Whatever)
select new OrganizationDto
{
OrganizationId = org.Id,
OrganizationName = org.Name,
TotalUsers = org.Users.Count(),
};
var list = await query.AsNoTracking().ToListAsync();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.