首页 > 其他 > 详细

根据表达式树动态生成Lambda表达式

时间:2017-05-20 15:17:54      阅读:350      评论:0      收藏:0      [点我收藏+]

1.准备

  1. 环境:Asp.Net MVC5 、EF6
  2. 前置知识:反射、使用过EF编写过Lambda表达式

2.基础类库

2.1该高级条件的类型

 1     /// <summary>
 2     /// 当前条件所属类型
 3     /// </summary>
 4     public enum Em_AS_ConditionType
 5     {
 6         /// <summary>
 7         /// 8         /// </summary>
 9         [Description("")]
10         And = 0,
11 
12         /// <summary>
13         ///14         /// </summary>
15         [Description("")]
16         Or = 1
17     }

2.2搜索条件

 1     /// <summary>
 2     /// 高级搜索条件
 3     /// </summary>
 4     public enum Em_AS_Condition
 5     {
 6         /// <summary>
 7         /// 包含
 8         /// </summary>
 9         [Description("包含")]
10         Include = 0,
11 
12         /// <summary>
13         /// 等于
14         /// </summary>
15         [Description("=")]
16         Equal = 1,
17 
18         /// <summary>
19         /// 大于等于
20         /// </summary>
21         [Description(">=")]
22         GtEqual = 2,
23 
24         /// <summary>
25         /// 大于
26         /// </summary>
27         [Description(">")]
28         Gt = 3,
29 
30         /// <summary>
31         /// 小于等于
32         /// </summary>
33         [Description("<=")]
34         LtEqual = 4,
35 
36         /// <summary>
37         /// 小于
38         /// </summary>
39         [Description("<")]
40         Lt = 5,
41     }

2.3前端传来的数据模型格式

    /// <summary>
    /// 高级查询
    /// </summary>public class QM_Adv
    {
        /// <summary>
        /// 属性名称
        /// </summary>public string PropName { get; set; }

        /// <summary>
        /// 条件
        /// </summary>public Em_AS_Condition Condition { get; set; }

        /// <summary>
        /// 关键字
        /// </summary>public string Keyword { get; set; }

        /// <summary>
        /// 这组条件与其它条件的关系
        /// </summary>public Em_AS_ConditionType ConditionType { get; set; }
    }

3.准备好基础类库,然后就可以编写表达式树生成Lambda的代码了

 

根据表达式树动态生成Lambda表达式

原文:http://www.cnblogs.com/impl/p/6882148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!