IsUsersInGroup (int groupId, int firstuserUserId, int secondUserId) - PullRequest
1 голос
/ 09 ноября 2010

у меня UserTable:

UserName
UserId (primarykey)

У меня есть GroupTable:

GroupName
Groupd (primarykey)

Я связываю каждого пользователя с группой с 3-й таблицей UserGroup:

UserId
GroupId

Как я могу реализовать функцию

bool IsUsersInGroup(int groupId, int firstuserUserId, int secondUserId)

, который возвращает истину, если firstuserUser и secondUser связаны с группой с groupId? с использованием Entity-Framework

1 Ответ

0 голосов
/ 09 ноября 2010
bool IsUserInGroup(int groupId, int userId)
{
 using (var db = new Model1Container())
 {
  return ((from ug in db.UserGroup
     join user in db.UserTable on new { a = ug.UserId, b = userId } equals new { a = user.UserId, b = user.UserId }
     join gr in db.GroupTable on new { a = ug.GroupId, b = groupId } equals new { a = gr.GroupId, b = gr.GroupId }
     select ug)
  .FirstOrDefault()) != null;
 }
}

bool IsUsersInGroup(int groupId, int user1Id, int user2Id)
{
 return IsUserInGroup(groupId, user1Id) && IsUserInGroup(groupId, user2Id);
}

или

bool IsUserInGroup(int groupId, int user1Id, int user2Id)
{
 using (var db = new Model1Container())
 {
  return ((
   from ug1 in db.UserGroup
   from ug2 in db.UserGroup
   join user in db.UserTable on new { a = ug1.UserId, b = user1Id } equals new { a = user.UserId, b = user.UserId }
   join gr in db.GroupTable on new { a = ug2.GroupId, b = groupId } equals new { a = gr.GroupId, b = gr.GroupId }
   select new { ug1, ug2 })
  .FirstOrDefault()) != null;
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...