Asp.net mvc 4 SQL数据透视表和计数

Asp.net mvc 4 SQL数据透视表和计数,asp.net-mvc-4,pivot-table,Asp.net Mvc 4,Pivot Table,好的,我已经用UserOrganization pivot表创建了一个SystemUser和Organization表,但我的问题是我想在剑道网格中显示每个组织有多少用户的用户计数 我通常会做一些事情,比如有一个权限表,然后执行以下操作 var UserCount = _db.Permissions .Where(w => w.OrganisationId == Organisations.Id) .Count()

好的,我已经用UserOrganization pivot表创建了一个SystemUser和Organization表,但我的问题是我想在剑道网格中显示每个组织有多少用户的用户计数

我通常会做一些事情,比如有一个权限表,然后执行以下操作

var UserCount = _db.Permissions
                   .Where(w => w.OrganisationId == Organisations.Id)
                   .Count();
当然,因为my.edmx没有透视表,所以我无法执行_db.userorganizations.Where

我试着用谷歌搜索出一个答案,但要么我想得不对,要么答案就在我面前,我就是看不到


任何帮助都将不胜感激。

假设您的dbContext具有列出组织对象集合的Organizations属性,并且您的组织实体具有存储组织成员的Users属性

var orgList= db.Organisations.Select(s => new 
                     { Name = s.Name, MemberCount = s.Users.Count() }).ToList();
这将列出具有名称和MemberCount属性的匿名类型列表。但是,如果需要viewmodels列表,请执行以下操作

var orgList= db.Organisations.Select(s => new OrganizationVM 
                   { Name = s.Name, MemberCount = s.Users.Count() }).ToList();
假设您的OrganizationVM具有Name和MemberCount属性


你的组织实体类有用户属性吗?@Shyju是的,这不是我的意思,但它提醒了我下一个问题。var UserCount=来自o在_db.organizationalUnits中,其中o.Id==来自t在o.SystemUsers中用户选择t.Count;这是我想要的,但语法与我的问题或你的回答相同,但从你的回答中,我想到了显示特定组织的用户列表的下一个阶段,我认为我可以用正确的语法理解,或者至少知道正确的问题。据我所知,你的回答将为我提供有一个组织名称列表和每个组织的用户数,这几乎就是我在剑道网格中使用的,因为它显示所有子组织,然后有一列显示用户数。该列将是一个按钮,重定向到一个用户列表,在那里我想显示特定组织的所有用户。是的。它将返回name和用户计数。如果要在按钮中显示它,这是您需要在UI/视图中调整的内容。这将为我提供一个可供选择的简单显示,我可以使用,但我想知道是否有可能获得所有用户的列表,因为这将允许我使用相同的方法显示列表中的所有用户,并将每个记录传递到VM/DTO,以便在需要的地方添加信息?我发现类似于此,我可以更改以满足我的要求,但我仍然更喜欢使用另一种语法,var UserCount=from o in _db.organization,其中o.Id==o.SystemUsers中t的organization.Id选择t.Count;
public class OrganizationVM 
{
  public string Name { set;get; }
  public int MemberCount { set;get; }
}