zoukankan      html  css  js  c++  java
  • 从LINQ实例解析LINQ的另类用法,解决多条件组合问题

    YiDaoWang.com这个项目准备功能改版,师兄吩咐:尽可能地做到万般皆LINQ,所以很多东西都要从存储过程搬过来..
    昨天写评价功能的时候,碰到个多条件叠加组合的问题,其需求如下:

    多种查询评价的条件:
    1.查询类型:收到的评价_买家给我的评价,收到的评价_卖家给我的评价,给出的评价_我给买家的评价,给出的评价_我给卖家的评价

    Code
    2.评价类型:全部,好评,中评,差评
    Code
    3.评价查询时间:全部,一个星期内,一个月以内,六个月以内,六个月以外
    Code

    由于缓存的需要,要把Expression完成之后再传到接口那边获取相应的List<评价意见>.按照这样的看的话,
    总共3个条件, 13个子条件, 排列组合之后, 会有80种的组合. - - 真的一个个组合去写的话,还真是累死人了..

    左思右想,最好的方法就是把3个条件都拆开来,完成不同的Expression,到最后再把三个条件组合在一起成为一个新的Expression.
    网上找到的比较都只是单条件的Parameter, 查了MSDN,才知道有个Expression.And(left, right)可以完成我的需求.
    利用.net3.5的扩展方法写成了一个组合Expression的方法,再重载了几个多参数的表达式,如下:

    Code

    有了这几个方法,原本的需求就可以迎刃而解了:

    Code
  • 相关阅读:
    文字编码转换器 V1.0 免费绿色版
    一把刀系统维护工具箱 v1.6 绿色版
    一把刀终极配置Win7/8版 v2.0 绿色版
    移动端 iframe的使用
    scale配合过渡的时候bug
    js 简体中文拼音对应表
    原生js快速渲染dom节点
    让我们的svg起飞,兼容ie9的神器
    盒模型
    Normalize.css 与 reset.css
  • 原文地址:https://www.cnblogs.com/yans/p/1369006.html
Copyright © 2011-2022 走看看