【问题标题】:Strange LINQ behavior - ToList returning empty set奇怪的 LINQ 行为 - ToList 返回空集
【发布时间】:2009-09-22 01:26:37
【问题描述】:

我不明白为什么 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);

谢谢!

阿什利

【问题讨论】:

    标签: linq entity-framework


    【解决方案1】:

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

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

    看看 RiskRating 的值返回到数据库中,以及执行的 SQL 查询是什么样子会很有趣。

    【讨论】:

    • 啊,你是对的 - 它归结为区分大小写!谢谢马特!
    • 您是否知道 ObjectQuery 上包含不区分大小写的内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多