首页 > 其他 > 详细

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

时间:2016-03-31 16:43:17      阅读:90      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!