我正在研究实体框架项目,我必须在dbContext.Where中应用Or condition 我试过这个,但它给了我错误“运算符||不能应用于类型lambda表达式的操作数”
return dataContext.Friends
.Where((r => r.ToUserId == touserid && r.FromUserId == fromuserid)
|| (r => r.ToUserId == fromuserid&& r.FromUserId == touserid ))
.ToList();
我也试过使用&&而不是||但它给了我同样的错误&&,我怎么能申请或条件这个senario? 我也试过没有括号
答案 0 :(得分:5)
你需要这样做:
return dataContext.Friends.Where(r => (r.ToUserId == touserid && r.FromUserId == fromuserid) || (r.ToUserId == fromuserid && r.FromUserId == touserid))
.ToList();
唯一的区别是我删除了第二个r =>
并修复了括号。
答案 1 :(得分:4)
将它放入一个包含||
而不是||
两个单独的lambas的lambda中:
return dataContext.Friends.Where(r => (r.ToUserId == touserid && r.FromUserId == fromuserid) || (r.ToUserId == fromuserid&& r.FromUserId == touserid)).ToList();
答案 2 :(得分:-2)
@Syed
|| (r => r.ToUserId == fromuserid&& r.FromUserId == touserid )).ToList();
应该是
|| (r => r.ToUserId == fromuserid && r.FromUserId == touserid )).ToList();
请注意“fromuserid&&”之间的空格。