2013-01-03 76 views
0

我正在使用BLToolkit並找出一個有趣的行爲。我不明白爲什麼使用鏈接相同的請求給我不同的結果: SQL請求:SQL請求和使用BLToolkit的鏈接請求中的差異響應


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(price):40

  • B)(ID):b787a74e-696b-493d-a4bc-5bb407e231b3(包括maxValue):1000 (effDate):2011-01-01(價格):80

和SQL請求給我的結果。 並同時請求使用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請求中的原因或錯誤嗎?

+0

LINQ代碼不會編譯。請向我們展示您執行的實際代碼。 – usr

+0

另外,請發佈生成的SQL,您可以通過運行SQL事件探查器來捕獲它。 – usr

回答

1

執行LINQ代碼後,您可能需要檢查您的db.LastQuery。您會看到生成的SQL,並且可以將其與您真正想要的SQL進行比較。