.net - 为什么linq查询不将 "where"放入SQL语句中

标签 .net sql-server linq linq-to-sql

这是我的 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/

相关文章:

c# - 为什么 SqlDependency.OnChange 没有被触发?

.net - F# 中的 "The value is not a function and cannot be applied."错误

sql - 存储过程太慢

c# - 替换表达式树中的参数值

c# - 如何在子键分组时使用 LINQ 连接两个父/子对象列表

c# - 为什么 Contains 比较对象与 == 不同?

c# - JSON API 的.Net 选项?

sql-server - 获取 "Execution Timeout Expired"通过 Invoke-Sqlcmd 运行 SQL Server 备份

sql - MYSQL中DBCC INPUTBUFFER(@@SPID)(为当前连接或指定连接提供sql语句)的等效语句是什么?

c# - LINQ 动态分组