【发布时间】:2015-06-11 21:07:35
【问题描述】:
我遇到了 linq 查询的问题。我正在加入两个表,但 where 子句被完全忽略了。
using (var db = new Context())
{
var count = (from c in db.PERSON
join dt in db.DATA_INPUT_CHANGE_LOG
on c.DataInputTypeId equals dt.DataInputTypeId
join x in db.DATA_INPUT_CHANGE_LOG
on c.Id equals x.DataItemId
where c.PersonId == p1Id &&
c.RefPersonId == p2Id &&
c.RelationshipId == rId
where x.Approved
where x.Checked
where x.Hidden == false
select c).Count();
return count > 0;
}
在此特定查询中,x.Approved、x.Checked 和 x.Hidden == false where 子句被完全忽略。
谁能指出我正确的方向?
【问题讨论】:
-
看这里:stackoverflow.com/questions/679644/… 你可能想指定一次在哪里
-
您是否对您的数据库运行了分析器以准确查看从该 LINQ 生成的 sql?
-
你为什么使用多个 where 而不是一个 AND ?