代码之家  ›  专栏  ›  技术社区  ›  Chris Stewart

linq to sql不返回数据,但生成的sql语句返回数据。

  •  0
  • Chris Stewart  · 技术社区  · 14 年前

    我有一个linq-to-sql查询,执行时不会返回任何数据。但是,当我调试时,我可以获取生成的SQL查询,插入变量的值,并在SQL Management Studio中运行它以获取我期望的记录。在调试模式下,我也将获取变量的值。

    以前有人经历过这样的事吗?

    根据要求,LINQ语句(已编辑的表和列名称):

    var q1 = from rr in db.ABC
             from rd in db.DEF
             where rr.a == rd.b
             where rr.c == rd.c
             where rr.d.Equals(id)
             where rr.c.Equals(anotherId)
             select new
             {
                 rr.d, rr.x, rr.a, 
                 rr.y, rr.z, rr.v, 
                 rr.e, rd.r
             };
    
    var r1 = q1.Single();
    

    我在其他地方也使用了非常类似的查询,并且取得了成功。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Community T.Woody    7 年前

    运行SQL Server配置文件,执行它正在运行的准确查询(不必“插入”任何值),然后运行它。

    你还在取得结果吗?
    它是否插入了正确的值?
    Are you querying a nullable value?
    你能给我们看看代码和生成的查询吗?

        2
  •  2
  •   smaclell    14 年前

    我将仔细检查linq to sql使用的连接字符串。它可能只是访问了错误的数据库。

        3
  •  2
  •   HLGEM    14 年前

    是否运行profiler以确保您认为stament将具有的值实际上位于发送到服务器的语句中?