none
EF查询数据库,采用Expression<Func<T,bool >>传递条件,比较复杂的查询需求,急求帮助 RRS feed

  • 问题

  • 比如class A

    {

    int a;

    string b;

    string c;

    }

    过滤条件A:Expression<Func<T,bool >> funcFilter = c=>c.c.Contains("a")

    排序条件B:Expression<Func<T,bool >> funcOrderBy = c = c=>c.a

    特殊条件C:Expression<Func<T,bool >> funcSpecial = c=>c.b == "b"

    假设上下文为EF,所以代码为EF.Where(A).OrderBy(B),后面就无法实现了,要求按照每页为10分页,只取出其中一页,这一页必须包含某行满足特殊条件C,求各位大侠帮帮忙,想想办法!!!

    不允许取到内存中处理,因为会降低性能

    我举个实际的例子吧:

    表Person

    先查询满足过滤条件A:where(c=>c.FirstName.Contains("a")),然后满足排序条件B:OrderBy(c=>c.LastName),然后按照每页5行数据分页,返回某页数据,这一页中含有一行必须满足条件C:id == 6。

    最终应该得到的数据为(真正要的结果就是这一页的全部数据,这一页包含了Id==6的那行数据):


    证明自己存在


    2012年5月29日 11:55

全部回复