这是我的 linq 查询:
Dim Jobs As New DBDataContext
Dim jobpart = Jobs.JobParts.Where(Function(x) x.JobNum = 143401).ToList
这是我在 sql profiler 中看到的 sql 语句:
SELECT [t0].[JobNum], [t0].[PartNum], [t0].[UserName] FROM [dbo].[JobParts] AS [t0]
为什么where语句没有通过?它正在从数据库中选择所有记录,并且似乎会过滤掉我稍后想要的记录。
更新:
我创建了一个新网站,其中仅包含该数据类和相同的代码,并且“位置”显示在分析器中。我尝试将该数据类添加到我当前的网站,但“位置”没有显示在探查器中。什么可能会改变 Linq 在项目之间创建查询的方式?
最佳答案
我终于明白了。在我的网络配置中的命名空间标签下,我使用 <clear/>
这消除了 linq 查询所需的一些命名空间。之所以很难找到,是因为我在 vb 页面中手动导入了 system.linq.enumerable,这掩盖了我的“where”语句中的任何错误。一旦我注释掉该导入,我就开始看到一个错误,表明我的类不可查询,并且我可能缺少 namespace 。就在那时我发现了网络配置问题。
关于.net - 为什么linq查询不将 "where"放入SQL语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791935/