我正在设计类似facebook组的东西。我有用户表和社区,其中一个关系表名称为 CommunityUser 。我想知道用户是否已加入社区?如果社区ID存在于CommunityUser表中的该userID,则可能需要这样做。 这是我的IsMember()函数代码。
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 :(得分: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));
}