2012-10-15 2 views
0

Я работаю над проектом фреймворка сущности, мне нужно применить условие Or в dbContext.Where Я пробовал это, но это дало мне ошибку «Оператор || не может применяться к операнду типов лямбда-выражений»Или Условие в Entity Framework

return dataContext.Friends 
       .Where((r => r.ToUserId == touserid && r.FromUserId == fromuserid) 
        || (r => r.ToUserId == fromuserid&& r.FromUserId == touserid)) 
       .ToList(); 

Я также попытался использовать & & вместо || но он дает мне ту же ошибку для & &, как я могу применить Или условие для этого senario? Я попытался без скобок, а

ответ

5

Вы должны сделать это так:

return dataContext.Friends.Where(r => (r.ToUserId == touserid && r.FromUserId == fromuserid) || (r.ToUserId == fromuserid && r.FromUserId == touserid)) 
          .ToList(); 

Единственное отличие состоит в том, что я удалил второй r => и фиксированной скобки.

4

Положите его в один лямбда, который включает в себя || вместо || ИНГ два отдельных lambas:

return dataContext.Friends.Where(r => (r.ToUserId == touserid && r.FromUserId == fromuserid) || (r.ToUserId == fromuserid&& r.FromUserId == touserid)).ToList(); 
-2

@Syed

|| (r => r.ToUserId == fromuserid&& r.FromUserId == touserid)).ToList(); 

Должно быть

|| (r => r.ToUserId == fromuserid && r.FromUserId == touserid)).ToList(); 

примечание пространство между "fromuserid & & ".

+2

-1: Глупости. Пространства не имеют значения. –

+0

MAnoj, у меня есть пробелы в моем коде, я не знаю, почему он показывает без пробелов при публикации –

Смежные вопросы