/// <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)); }
/// <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); }
/// <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)); }