0

私はエンティティフレームワークプロジェクトに取り組んでいます。dbContextでOr条件を適用する必要があります。これを試しましたが、「演算子||はラムダ式の型のオペランドに適用できません」というエラーが表示されます。

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

||の代わりに&&を使ってみました しかし、それは私に&&に対して同じエラーを与えます、どうすればこのシナリオにOr条件を適用できますか?角かっこなしでも試してみました

4

3 に答える 3

5

あなたはこのようにする必要があります:

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

唯一の違いは、2番目を削除しr =>、括弧を修正したことです。

于 2012-10-15T10:15:10.970 に答える
4

2つの別々のランバを使用する||代わりに、それを含む1つのラムダに入れます。||

return dataContext.Friends.Where(r => (r.ToUserId == touserid && r.FromUserId == fromuserid) || (r.ToUserId == fromuserid&& r.FromUserId == touserid)).ToList();
于 2012-10-15T10:15:41.457 に答える
-2

@Syed

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

する必要があります

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

「fromuserid&&」の間のスペースに注意してください。

于 2012-10-15T10:19:34.320 に答える