2014-02-28 124 views
0

好吧我創建了一個SystemUserOrganisation表與一個UserOrganisation數據透視表,但我的問題是我想顯示在一個kendo網格用戶數每個組織有多少用戶。SQL數據透視表和計數

我通常會做這樣的事情有一個權限表,做下面的,

var UserCount = _db.Permissions 
        .Where(w => w.OrganisationId == Organisations.Id) 
        .Count(); 

當然,因爲我.edmx不具備透視表,我不能做_db.UserOrganisations.Where

我我嘗試了一些Google搜索來得出一個答案,但要麼我錯誤地思考這個問題,要麼我的答案就是直面我,我只是沒有看到它。

任何幫助將不勝感激。

+0

貴'Organisation'實體類有一個'Users'財產? – Shyju

+0

@Shyju是反之亦然 – Myzifer

回答

0

假設您的dbContext有一個Organisations屬性,該屬性列出了組織對象的集合,並且您的Organisation實體具有Users存儲組織成員的屬性。

var orgList= db.Organisations.Select(s => new 
        { Name = s.Name, MemberCount = s.Users.Count() }).ToList(); 

這將列出匿名型與NameMemberCount財產清單。但是,如果你想要的ViewModels的列表,這樣做

var orgList= db.Organisations.Select(s => new OrganizationVM 
        { Name = s.Name, MemberCount = s.Users.Count() }).ToList(); 

假設你的OrganizationVMNameMemberCount財產

public class OrganizationVM 
{ 
    public string Name { set;get; } 
    public int MemberCount { set;get; } 
} 
+0

這並不完全符合我的意思,但它並提醒我下一個問題,我有。 VAR = USERCOUNT(選自O在_db.OrganisationalUnits 其中o.Id == organisation.Id 從噸o.SystemUsers 選擇噸).Count之間();這是我想要的,但與我的問題或答案中的語法相同,但是從您的答案中,我想到了爲特定組織顯示用戶列表的下一階段,我認爲我可以找出正確的語法或至少知道正確的問題。 – Myzifer

+0

按照我的理解你的回答會爲我組織名稱的列表,併爲每個用戶數,這是我使用幾乎什麼劍道網格,它會顯示所有子組織,然後有一欄,顯示的用戶數。該列將是一個重定向到用戶列表的按鈕,這是我希望顯示特定組織的所有用戶的地方。 – Myzifer

+0

是的。它將返回名稱和用戶數量。如果你想在一個按鈕中顯示它,那麼你需要在UI/View中進行調整。 – Shyju