none
linq查询问题 RRS feed

  • 问题

  • 用的castle框架,查询时用Iquery,如下查法

     ActiveRecordLinqBase<TModel>.Queryable.Where(@where).Take(pageSize).Skip(startIndex);

    请问这样查询时,是否会先返回where里面的所有数据然后再实行Take和skip,这样的话如果where条件宽,返回的数据会比较多?

    我希望是会运行结合take和skip的查询语句到sql中,不知道事实是否这样呢?

    2015年6月11日 6:45

答案

  • Hello,

    >>我希望是会运行结合takeskip的查询语句到sql中,不知道事实是否这样呢?

    castle框架很了解,但是从你的linq query来看,他应该是基于.NETLINQ provider的,而且看你的返回类型的IQueryable<T>,所以你查询会被全部翻译成sql语句,skiptake方法会被翻译成top和一个子查询。如果你用的是sql server 你可以用sql server profier来查看执行的语句。

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 a013strife 2015年6月12日 5:13
    2015年6月12日 5:12
    版主