public void AddNamedParameters(object namedParameters, CrudMethod crudMethodType) { if (namedParameters == null) { return; } var ignoreAttribute = new List <Type> { typeof(IgnoreAttribute) }; switch (crudMethodType) { case CrudMethod.Insert: ignoreAttribute.Add(typeof(IgnoreOnInsertAttribute)); break; case CrudMethod.Update: ignoreAttribute.Add(typeof(IgnoreOnUpdateAttribute)); break; } var props = namedParameters.GetType().GetProperties(); foreach (var p in props) { var name = p.Name; var customAttributes = p.GetCustomAttributes(true); if (customAttributes.Any(x => x is ColumnAttribute)) { name = ((ColumnAttribute)customAttributes.Single(x => x is ColumnAttribute)).Name; } if (customAttributes.Any(x => ignoreAttribute.Contains(x.GetType()))) { continue; } var value = p.GetValue(namedParameters, null); if (DBNull.Value.Equals(value)) { value = null; } NamedParameters.Add(new KeyValuePair <string, object>(name, value)); } }
public IDbClient AddNamedParameters(object namedParameters, CrudMethod crudMethodType) { _parameterManager.AddNamedParameters(namedParameters, crudMethodType); return(this); }