2017-04-11 81 views
-2

我正在設計類似於Facebook羣組的東西。我有用戶表和社區與一個關係表名稱社區用戶。我想知道用戶是否已加入社區?如果communityUser表中的該用戶標識存在communityID,則可以執行此操作。 這是我的IsMember()函數代碼。如何檢查表中是否存在條目? MVC

public bool IsMember(string UserID, int CommunityID) 
    { 
     var MembershipUser = db.Users.Include(x => x.CommunityUsers).Where(s => s.Id == UserID).FirstOrDefault(); 

     var Membership = MembershipUser.CommunityUsers.Count(); 
     if (Membership > 0) 
      return true; 
     else 
      return false; 
    } 

我有我的用戶表虛連接

public virtual ICollection<CommunityUser> CommunityUsers { get; set; } 

    public ApplicationUser() 
    { 
     CommunityUsers = new Collection<CommunityUser>(); 
    } 
+0

代碼不按預期工作的方式?你在談論實體框架,這與ASP.NET MVC有什麼關係?真的不清楚問題是什麼。 – David

+0

你有一些代碼似乎是做你所描述的是你的目標。怎麼了?此代碼如何不如您所描述的那樣? – mason

回答

1

如果您在返回一個布爾值的規劃,只是考慮使用Any()方法:

public bool IsMember(string UserID, int CommunityID) 
{ 
    // This will return if a given user exists 
    return db.Users.Any(u => u.Id == UserId); 
} 

同樣,你可以還考慮拉入相關的CommunityUsers集合並檢查您的查詢內容:

public bool IsMember(string UserID, int CommunityID) 
{ 
    // This will return true if a given user exists and if a specific 
    // CommunityId is present for that user 
    return db.Users.Include("CommunityUsers") 
        .Any(u => u.Id == UserId && u.CommunityUsers.Any(c => c.Id == CommunityId)); 
}