2017-04-11 4 views
-2

私はFacebookのグループに似た何かをデザインしています。私はユーザーテーブルとコミュニティを1つの関係テーブル名CommunityUserとしています。ユーザーが既にコミュニティに参加しているかどうかを知りたいですか?これは、communityUserテーブル内のそのユーザーIDに対して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; 
    } 

あなただけAny()方法を使用することを検討して、ブール値を返すことを計画している場合、私は私のユーザー表内の仮想接続に

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

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

コードはどのようにして期待どおりに機能しませんか? Entity Frameworkについて話していますが、これはASP.NET MVCと何が関係していますか?問題の内容は明らかではありません。 – David

+0

説明したことを目的としていると思われるコードがいくつかあります。どうしましたか?あなたが記述したとおりにこのコードはどのように機能しませんか? – mason

答えて

1

を持っている:

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)); 
} 
関連する問題