2012-10-15 92 views
0

我正在處理實體框架項目,我必須在dbContext.Where中應用或條件 我試過這個,但它給了我錯誤「Operator ||不能應用於類型lambda表達式的操作數」或實體框架中的條件

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

我也用& &,而不是試圖||但它給我同樣的錯誤& &,我怎麼能申請或條件這個塞納里奧? 我沒有括號試圖以及

回答

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,我在我的代碼中有空格,我不知道它爲什麼在發佈時沒有顯示空格 –