0

BLToolkitを使用していて、興味深い動作を見つけました。リンクで同じリクエストを使用すると異なる結果が得られる理由がわかりません。SQLリクエスト:


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

このテーブルには、実際には2つの結果があります。

  • 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リクエストの理由や何が間違っているのか誰かが説明できますか?

4

1 に答える 1

1

db.LastQueryLINQ コードが実行された後、権利を検査することができます。生成された SQL が表示され、実際に必要な SQL と比較できます。

于 2013-02-18T06:28:46.657 に答える