예제 #1
0
        /// <summary>
        /// 追加列名
        /// </summary>
        /// <param name="alias">所在表名</param>
        /// <param name="member">成员元数据</param>
        /// <param name="reflectedType">访问字段或者属性的实际类型</param>
        /// <returns></returns>
        public ISqlBuilder AppendMember(string alias, MemberInfo member, Type reflectedType)
        {
            ColumnAttribute column     = TypeUtils.GetColumnAttribute(member, reflectedType ?? (member.ReflectedType ?? member.DeclaringType));
            string          memberName = column != null && !string.IsNullOrEmpty(column.Name) ? column.Name : member.Name;

            return(this.AppendMember(alias, memberName));
        }
예제 #2
0
        /// <summary>
        /// 获取字段或属性成员对应的数据字段名称
        /// </summary>
        /// <param name="member">字段或属性成员</param>
        /// <param name="reflectedType">调用字段或属性成员的实际类型</param>
        /// <returns></returns>
        public static string GetFieldName(MemberInfo member, Type reflectedType)
        {
            if (member == null)
            {
                return(null);
            }

            ColumnAttribute column = TypeUtils.GetColumnAttribute(member, reflectedType);

            return(column != null && !string.IsNullOrEmpty(column.Name) ? column.Name : member.Name);
        }
예제 #3
0
        /// <summary>
        /// 生成 value 对应的 SQL 片断
        /// </summary>
        /// <param name="value">SQL值</param>
        /// <param name="token">解析SQL命令上下文</param>
        /// <param name="m">value 对应的成员</param>
        /// <returns></returns>
        public string GetSqlValue(object value, ITranslateContext token, MemberVisitedStack.VisitedMember m)
        {
            ColumnAttribute column = m != null?TypeUtils.GetColumnAttribute(m.Member, m.ReflectedType) : null;

            return(this.GetSqlValue(value, token, column));
        }