2015-02-13 2 views
-1

У меня есть таблица, в которой хранятся последователи и последователи. Они основаны на их указателях.Проверка выражения Linq, если один пользователь следит за другим

прежде, чем я хочу, чтобы это отношение я хочу, чтобы проверить и посмотреть, если человек уже после человека

EDIT

bool userExist = _databaseEntities.Users.Count(e => e.UserName == followerName) > 0;

 if(userExist) 
     { 
      var user1 = _databaseEntities.Users.FirstOrDefault(y => (y.UserName == username)); 
      var user2 = _databaseEntities.Users.FirstOrDefault(z => (z.UserName == followerName)); 

Так я получаю два пользователя и проверьте, присутствуют ли они, а затем проверьте, находятся ли их идентификаторы пользователя в таблице последователей, образующих отношения.

поэтому у меня есть этот _db.Followers.Count(c => (c.UserId == user1.UserId && c.FollowerId == user2.UserId) < 0);

, но он всегда выходит как 0, даже если связь есть

Как я могу сделать это правильно?

+2

Почему вы компилируете 'bool' с' 0'? Ваш код: '(... && ...) <0' –

+0

, чтобы сделать это немного понятнее, переместите <0 за пределами), который находится справа от него. – pquest

+2

Сравнение 'Count' с' <0' будет ВСЕГДА быть 'false' :) –

ответ

0

Если я правильно понимаю, у вас есть таблица вроде этого:

| UserId | FollowerId | 
|----------|--------------| 
| Homer | Marge  | 
| Homer | Lisa  | 
| Marge | Homer  | 
| Marge | Bart  | 
| Bart |    | 
| Lisa | Bart  | 
|----------|--------------| 

И соответствующий класс пользователя должен содержать, по крайней мере, свойство строки для UserId и набор пользователей (тех, кто пользователь следит за) Таким образом, вы можете иметь метод внутри пользователя, как это:

public bool CanFollow(User followee) 
    { 
     return !Followee.Any(x => x.UserId == followee.UserId); 
    } 

это проще и логичнее, и вы просто использовать его как что

User homer = _db.Followers.Where(x => x.UserId == "Homer").FirstOrDefault(); 
User marge = _db.Followers.Where(x => x.UserId == "Marge").FirstOrDefault(); 

// can Homer follow Marge? 
homer.CanFollow(marge); 
Смежные вопросы