码迷,mamicode.com
首页 > 其他好文 > 详细

根据输入的模型属性表达式获取名称

时间:2016-03-31 16:44:10      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

 

public T GetEntity<T>(string tableName, Dictionary<Expression<Func<T,object>>,object> conditionDic) where T : new()
        {
            var dic = new Dictionary<string, object>();
            foreach (var kp in conditionDic)
            {
                var columnName = "";
                if (kp.Key.Body is UnaryExpression)
                {
                    columnName = ((MemberExpression)((UnaryExpression)kp.Key.Body).Operand).Member.Name;
                }
                else if (kp.Key.Body is MemberExpression)
                {
                    columnName = ((MemberExpression)kp.Key.Body).Member.Name;
                }
                else if (kp.Key.Body is ParameterExpression)
                {
                    columnName = ((ParameterExpression)kp.Key.Body).Type.Name;
                }
                if (string.IsNullOrEmpty(columnName)) continue;
                dic.Add(columnName, key.Value);
            }
            //return GetEntity<T>(tableName, dic);
        }

 

使用方式:

var dic = new Dictionary<Expression<Func<Entity,object>>, object>
                {
                    {p => p.Member1, "test1"},
                    {p => p.Member2, 2}
                };
var tmp = GetEntity("TableName", dic);

 

根据输入的模型属性表达式获取名称

标签:

原文地址:http://www.cnblogs.com/magic_evan/p/5341352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!