Разница ответов в запросе 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 дает мне результат. и в то же время запрос с использованием 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 ответ

Вы можете проверить свой db.LastQuery сразу после выполнения вашего кода LINQ. Вы увидите сгенерированный SQL и сможете сравнить его с тем, который вам действительно нужен.

Другие вопросы по тегам