zoukankan      html  css  js  c++  java
  • 分层中的~条件过滤~每个层对于“条件过滤”的职责

    在分层架构中,查询操作是很常见的,我们有时总是希望把它写得健壮一些,有时总希望重复代码少一些,可能有时也希望它可以美丽一些,呵呵!

    在这个系列中,我将为大家解说一下分层架构里的条件过滤,如何去设计它,WEB,BLL,DATA层都干什么事,怎么样使程序更加灵活,更加合理些。

    目录:

    一  每个层对于“条件过滤”的职责

    二  Lambda表达式对于查询语句简化了不少,牺牲的性能可以接受

    三  将所有过滤条件放到字典里,最后统一过滤

    四  为Iqueryable结果集添加扩展方法,并添加排序功能

    五  模块完整代码

     

    一  每个层对于“条件过滤”的职责

    WEB UI 层:整理查询的对象,并进行初始化工作,组织PredicateList对象(我的条件过滤器),代码可能是这样:

    1   PredicateList<User> predicateList = new PredicateList<User>();
    2   predicateList.Add(i => i.ID > 1);

    BLL 层:根据某种条件去调用LinqForPredicate方法,并完成对结果集的过滤,代码可能是这样:

    1             IQueryable<User> linq = arr.AsQueryable();
    2             if (sortBy == 0)
    3                 linq = linq.LinqForPredicate<User>(predicateList, i => i.Asc(j => j.ID));
    4             else
    5                 linq = linq.LinqForPredicate<User>(predicateList, i => i.Desc(j => j.ID));

    DATA层:这个层还是返回最单纯的数据集,条件过滤不会去影响这个层

    最后,在页面上可能会是这样的结果:

    有时,我们可能在为一个功能思前想后

  • 相关阅读:
    2019沈阳网路赛 D. Fish eating fruit (点分治)
    2019南京网路赛 A.The beautiful values of the palace (主席树)
    洛谷 P2634 [国家集训队]聪聪可可(点分治)
    AcWing252 树 (点分治模板题)
    点分治模板 (洛谷 P3806)
    2020牛客寒假算法基础集训营2 J-求函数(线段树维护矩阵乘法)
    七夕祭(贪心+中位数)
    数据结构-集合
    数据结构-广义表
    数据结构-稀疏矩阵
  • 原文地址:https://www.cnblogs.com/lori/p/2715531.html
Copyright © 2011-2022 走看看