LINQ to SQL where子句返回零

时间:2014-05-04 15:17:38

标签: c# linq-to-sql

当我运行此查询时

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子句是否会导致问题?

1 个答案:

答案 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值完全匹配的记录。