0

我正在研究实体框架项目,我必须在 dbContext 中应用 Or 条件。我在哪里尝试过,但它给了我错误“运算符 || 不能应用于 lambda 表达式类型的操作数”

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

我也尝试使用 && 而不是 || 但它给了我同样的 && 错误,我如何为这个 senario 申请或条件?我也试过不带括号

4

3 回答 3

5

你需要这样做:

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

唯一的区别是我删除了第二个r =>并修复了括号。

于 2012-10-15T10:15:10.970 回答
4

将其放入一个包含两个单独 lambas||而不是lambda 的 lambda:||

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

@赛义德

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

应该

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

注意“fromuserid&&”之间的空格。

于 2012-10-15T10:19:34.320 回答