public virtual void UpdateItem(string table, T item) { List <Condition> conditions = new List <Condition>(); List <Statement> columns = new List <Statement>(); PropertyInfo[] propertyInfos = null; if (propertyInfos == null) { propertyInfos = item.GetType().GetProperties(); } foreach (var info in propertyInfos) { var value = info.GetValue(item) ?? "(null)"; if (Mappings.ContainsKey(info.Name)) { columns.Add(new Statement(value, Mappings[info.Name])); } IDAttribute idAttr = (IDAttribute)Attribute.GetCustomAttribute(info, typeof(IDAttribute)); if (idAttr != null) { conditions.Add(new Condition(Operator.Equal, value, idAttr.Name)); } } Update(table, columns, conditions); }
public T GetItem(string tablename, Guid g) { List <Condition> conditions = new List <Condition>(); PropertyInfo[] propertyInfos = null; if (propertyInfos == null) { propertyInfos = typeof(T).GetProperties(); } foreach (var info in propertyInfos) { IDAttribute idAttr = (IDAttribute)Attribute.GetCustomAttribute(info, typeof(IDAttribute)); if (idAttr != null) { conditions.Add(new Condition(Operator.Equal, g, idAttr.Name)); } } return(Select(tablename, null, conditions).DataTableToList <T>().FirstOrDefault <T>()); }
public void DeleteItem(string table, Guid guid) { List <Condition> conditions = new List <Condition>(); PropertyInfo[] propertyInfos = null; if (propertyInfos == null) { propertyInfos = typeof(T).GetProperties(); } foreach (var info in propertyInfos) { var value = guid; IDAttribute idAttr = (IDAttribute)Attribute.GetCustomAttribute(info, typeof(IDAttribute)); if (idAttr != null) { conditions.Add(new Condition(Operator.Equal, value, idAttr.Name)); } } Delete(table, null, conditions); }
public override void UpdateItem(string table, T item) { List <Condition> conditions = new List <Condition>(); List <Condition> columns = new List <Condition>(); PropertyInfo[] propertyInfos = null; if (propertyInfos == null) { propertyInfos = item.GetType().GetProperties(); } foreach (var info in propertyInfos) { var value = info.GetValue(item) ?? "(null)"; object[] attrs = info.GetCustomAttributes(true); if (attrs.Length == 0) { base.UpdateItem(table, item); return; } IDAttribute idAttr = (IDAttribute)Attribute.GetCustomAttribute(info, typeof(IDAttribute)); if (idAttr != null) { string id = idAttr.Name; conditions.Add(new Condition(Operator.Equal, value, id)); } foreach (object attr in attrs) { MapAttribute mapAttr = attr as MapAttribute; if (mapAttr != null) { columns.Add(new Condition(Operator.Equal, value, mapAttr.Name)); } } } Update(table, columns, conditions); }