public static IList <DBFieldMetadata> GetFieldsMetadata(Type t) { List <DBFieldMetadata> fieldAttribs = new List <DBFieldMetadata>(); PropertyInfo[] pis = t.GetProperties(); foreach (PropertyInfo pi in pis) { DBFieldMetadataAttribute attr = (DBFieldMetadataAttribute)System.Attribute.GetCustomAttribute(pi, typeof(DBFieldMetadataAttribute)); //fieldAttribs.Add(pi.Name, attr); fieldAttribs.Add(new DBFieldMetadata() { Key = pi.Name, Attrib = attr }); } return(fieldAttribs.OrderBy(a => a.Attrib.Ordering).ToList()); }
/// <summary> /// Reflect through Persist object and get Properties /// NonTableField excluded /// </summary> /// <param name="t"></param> /// <param name="instance"></param> /// <returns></returns> public static Dictionary <string, object> GetDBTableFields(Type t, object instance) { Dictionary <string, object> Fields = new Dictionary <string, object>(); PropertyInfo[] pis = instance.GetType().GetProperties(); foreach (PropertyInfo p in pis) { DBFieldMetadataAttribute attr = (DBFieldMetadataAttribute)System.Attribute.GetCustomAttribute(p, typeof(DBFieldMetadataAttribute)); if (attr.NonTableField) { continue; } Fields.Add(p.Name, p.GetValue(instance, null)); } return(Fields); }
public static string GetQualifiedDBTableFieldsCommaSeparated(Type t) { string tableName = Reflect.GetEntityMetadata(t).TableName; StringBuilder Fields = new StringBuilder(""); PropertyInfo[] pis = t.GetProperties(); foreach (PropertyInfo p in pis) { DBFieldMetadataAttribute attr = (DBFieldMetadataAttribute)System.Attribute.GetCustomAttribute(p, typeof(DBFieldMetadataAttribute)); if (attr.NonTableField) { Fields.AppendFormat("{0},", p.Name); } else { Fields.AppendFormat("{0}.{1},", tableName, p.Name); } } return(Fields.ToString().TrimEnd(',')); }
public static string GetQualifiedDBTableField(Type t, string name) { if (string.IsNullOrEmpty(name)) { return(""); } string tableName = Reflect.GetEntityMetadata(t).TableName; string field = ""; PropertyInfo p = t.GetProperty(name); DBFieldMetadataAttribute attr = (DBFieldMetadataAttribute)System.Attribute.GetCustomAttribute(p, typeof(DBFieldMetadataAttribute)); if (attr.NonTableField) { field = p.Name; } else { field += tableName + "." + p.Name; } return(field); }