打击两个不同的查询评估相同的结果 我需要在不执行查询的情况下检查这些的相等性 如何检查两个不同的LINQ查询是否相同?
var exprA = (from o in orders where o.HasPrice == true);
var exprB = (from o in orders where o.HasPrice != false);
//HasPrice is a boolean
任何.NET解决方案或现有库的构建都将受到赞赏。
答案 0 :(得分:2)
我认为,解决这个问题几乎是不可能的。因为,在复杂的查询中,存在以下复杂情况:
where o.Price > 0 && o.Price < 2
和
where o.Price == 1
。
有时这些查询是相等的(当o.Price
为int或long时),但有时则为no(例如,当o.Price
为double时)。
所以,通常它无法解决。问题的边界是非常不确定的。
在我看来,您的问题不是原始问题,而是解决方案的一部分。所以,也许我们需要更深入地看到初始问题。