Есть список объектов со следующей структурой(что-то вроде оповещений):
public struct Friend
{
public int FromUserId;
public DateTime SendDate;
public int Status;
public int ToUserId;
}
Значение Status меняется от 0 до 3. FromUserId != ToUserId.
Я фиксирую номер какого-то юзера и хочу выбрать все объекты, удовлетворяющие условиям:
FromUserId или ToUserId объекта == номеру фиксированного мной юзера и поле Status == 2. Либо если есть пара объектов user1 и user2, где user1.FromUserId == user2.ToUserId и user1.ToUserId == user2.FromUserId(то есть симметричное оповещение) и какой-то из этих Id равен Id моего фиксированного пользователя, и поле status != 3, то эту пару тоже надо выбрать.
Никак не могу составить такой запрос, который бы удовлетворял моим условиям. Пока есть такое:
var tmpUserFriends =
from potentialFriend in this.friends
let someFriends = potentialFriend
where ((someFriends.ToUserId == userContext.User.UserId ||
someFriends.FromUserId == userContext.User.UserId) && someFriends.Status != 3)
join user in this.friends on potentialFriend.ToUserId equals user.FromUserId
where ((user.ToUserId == userContext.User.UserId ||
user.FromUserId == userContext.User.UserId) && user.Status != 3)
select user;
Где userContext.User - как раз мой фиксированный пользователь, а this.friends - это список всех объектов. Этот запрос выводит нужные мне объекты, но добавляет лишние - FromUserId или ToUserId объекта == номеру фиксированного мной юзера, но поле Status не 2, как в условии, а 0,1,2. Мне нужно только значение 2. В симметричном оповещении допускается 0,1,2.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как из метода GetValue() возвратить значение типа Nullable
Здравствуйте, собственно интересует каким образом можно зашифровать, обсуфицировать программу которая создается в динамической компиляции