zoukankan      html  css  js  c++  java
  • 根据输入的模型属性表达式获取名称

    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);
  • 相关阅读:
    框架搭建相关
    MVC的优缺点
    java filter、listener、servlet
    java类反射
    oracle创建用户及赋权
    sql分组最大值相关
    oracle备份还原数据库
    Oracle创建DataBase Links
    linux 安装mysql
    网址收藏
  • 原文地址:https://www.cnblogs.com/magic_evan/p/5341352.html
Copyright © 2011-2022 走看看