使用BLToolkit在SQL请求和链接请求中的差异响应

时间:2013-01-03 10:09:08

标签: linq linq-to-sql bltoolkit

我正在使用BLToolkit并找出一个有趣的行为。我不明白为什么在链接中使用相同的请求会给我不同的结果: SQL请求:


select TOP 1 * from table where  coverCode='1+4' 
                                             and effectiveDate <='20130103' 
                                              and  maxValue >= '1000'  
                                             order by maxValue asc, effectivedate desc

这个表实际上有两个结果:

  • A)(id):1ffbe215-ff0e-47dd-9718-4130ffb62539(maxValue):1000   (effDate):2011-01-01(价格):40

  • B)(id):b787a74e-696b-493d-a4bc-5bb407e231b3(maxValue):1000   (effDate):2011-01-01(价格):80

和SQL请求给我A结果。 同时使用Linq的请求:

db.Rate
   .Where(x=>x.coverCode == "1+4"
           && x.effectiveDate <= '20130103'
            && x.MaxValue >= '1000')
            .OrderBy(x => x.MaxValue)
            .ThenByDescending(x => x.effectiveDate)

这个请求给了我B结果。 任何人都可以解释linq请求中的原因或错误吗?

1 个答案:

答案 0 :(得分:1)

您可能希望在执行LINQ代码后立即检查db.LastQuery。您将看到生成的SQL,您可以将其与您真正想要的SQL进行比较。