public UpdateQuery <T> Where(T obj) { List <MemberInfo> members = obj.GetType().GetValueMembers(); foreach (MemberInfo member in members) { Type memberType = member.GetUnderlyingType(); DbFieldAttribute columnAttribute = member.GetCustomAttribute <DbFieldAttribute>(true); WhereIgnoreAttribute whereIgnore = member.GetCustomAttribute <WhereIgnoreAttribute>(true); if (columnAttribute != null && whereIgnore == null) { object value = member.GetValue(obj); if (columnAttribute.ValidFormatter(memberType)) { value = columnAttribute.FormatGetValue(memberType, value); } Where(columnAttribute.Name, value); } } return(this); }
internal InsertQuery(QueryBuilder builder, T obj) : base(builder) { // Get table name DbTableAttribute tableAttribute = obj.GetType() .GetCustomAttributes <DbTableAttribute>(true) .FirstOrDefault(); if (tableAttribute != null) { table = tableAttribute.Name; } else { table = obj.GetType().Name; } // Get custom fields List <MemberInfo> members = obj.GetType().GetValueMembers(); foreach (MemberInfo member in members) { Type memberType = member.GetUnderlyingType(); DbFieldAttribute columnAttribute = member.GetCustomAttribute <DbFieldAttribute>(true); InsertIgnoreAttribute insertIgnore = member.GetCustomAttribute <InsertIgnoreAttribute>(true); if (columnAttribute != null && insertIgnore == null) { object value = member.GetValue(obj); if (columnAttribute.ValidFormatter(memberType)) { value = columnAttribute.FormatGetValue(memberType, value); } Value(columnAttribute.Name, value); } } }
internal DeleteQuery(QueryBuilder builder, T obj) : base(builder) { // Get table name DbTableAttribute tableAttribute = obj.GetType() .GetCustomAttributes <DbTableAttribute>(true) .FirstOrDefault(); if (tableAttribute != null) { From(tableAttribute.Name); } else { From(obj.GetType().Name); } List <MemberInfo> members = obj.GetType().GetValueMembers(); foreach (MemberInfo member in members) { Type memberType = member.GetUnderlyingType(); DbFieldAttribute columnAttribute = member.GetCustomAttribute <DbFieldAttribute>(true); WhereIgnoreAttribute whereIgnore = member.GetCustomAttribute <WhereIgnoreAttribute>(true); if (columnAttribute != null && whereIgnore == null) { object value = member.GetValue(obj); if (columnAttribute.ValidFormatter(memberType)) { value = columnAttribute.FormatGetValue(memberType, value); } Where(columnAttribute.Name, value); } } }