代码之家  ›  专栏  ›  技术社区  ›  taji01

Linq查询的布尔值设置为false,但在SQL中为true

  •  0
  • taji01  · 技术社区  · 6 年前

    我在方法中使用了一个LINQ查询。当我跨过我的LINQ代码 isValid 变量设置为假。当它需要真实的时候。为什么是 有效的 设为“假”,如何修复?

    C码

        public void Method()
        {
            bool isValid = false;
    
            using(Database db = new Database())
            {
                isValid = (from x in db.TableName
                       where x.Column_A = "Data_Result" &&
                         x.Number_Col != 11
                       select x).Any();
    
                //Value of isValid = false???
            }
    
            ...
        }
    

    SQL示例

    SELECT * FROM TableName
    WHERE Column_A = 'Data_Result' AND Number_Col <> 11
    

    结果

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   tmaj    6 年前

    代码看起来不错,我怀疑,作为一般情况,问题是您指向的数据库是错误的。

    您可以通过获取前几行(可能是前10行)并进行比较来验证这一点。确保您订购 Id 所以你得到了同样的结果。

    db.TableName
    .OrderBy(r=>r.Id)
    .Top(10);
    

    你可以添加

    .Where( x => x.Column_A == "Data_Result")

    等。


    更新

    我刚注意到代码中只有一个等号 x.Column_A = "Data_Result" . 这是你真正的密码吗?