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

奇怪的Linq行为-ToList返回空集

  •  1
  • chickeninabiscuit  · 技术社区  · 17 年前

    我不明白为什么resultset2是空的!只有第一个断言通过!

    List<Tree> resultSet1 = this.datacontext.Trees.Where(t=>t.RiskRating.Contains("bad")).ToList();
    
    Assert.IsTrue(resultSet1.count() == 3);
    
    
    List<Tree> resultSet2 = this.datacontext.Trees.ToList().Where(t=>t.RiskRating.Contains("bad")).ToList();
    
    Assert.IsTrue(resultSet2.count() == 3);
    

    谢谢!

    艾希礼

    1 回复  |  直到 17 年前
        1
  •  3
  •   Matt Hamilton    17 年前

    什么? this.datacontext.Trees.ToList().Count() 返回?

    这是否与数据库中的排序规则有关?第一个示例将contains(“bad”)方法转换回SQL,SQL可能不区分大小写,并返回包含“bad”或“bad”的行。第二个例子不区分大小写。

    有趣的是,可以看到在数据库中返回的风险值是什么,以及执行SQL查询的情况。