当我运行此查询时
var query = from a in db.commentsTable
select a;
它会返回正确的结果数量,但是当我运行此查询时
var query = from a in db.commentsTable
where a.UserId == userId
select a;
它返回0,即使它应该返回33.这是唯一不起作用的查询。我对另一个列表做同样的事情并且工作正常。 where子句是否会导致问题?
答案 0 :(得分:1)
运营商where
不会导致问题。它只是被翻译成SQL子句WHERE
。因此,您将生成如下所示的查询:
SELECT [t0].[UserId], [t0].[Foo], [t0].[Bar] -- other fields from entity
FROM [dbo].[commentsTable] AS [t0]
WHERE [t0].[UserId] = @p0
没有魔力。如果结果为零,则数据库中没有[UserId]
字段等于传递参数p0
的值的记录。
在此查询上设置断点并验证您传递的userId
的值。还要验证您所连接的数据库,并检查您是否有与userId
值完全匹配的记录。