internal void Bestrow() { if (OriginalValue != null && OriginalValue.Count > 0) { return; } try { IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(this.GetType()); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsLoad == false && property.IsSave == false) {//判断是否加载 continue; } object value = property.GetValue(this); OriginalValue[property.Name] = value; } } catch (Exception ex) { LogProxy.Error(ex, false); } }
private static string InsertSqlBuilder(Type type) { StringBuilder sql = new StringBuilder("INSERT INTO [{0}] ("); StringBuilder values = new StringBuilder(); IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(type); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsSave == false) {//判断是否保存 continue; } sql.Append("["); sql.Append(property.Name); sql.Append("],"); values.Append("@"); values.Append(property.Name); values.Append(","); } sql.Remove(sql.Length - 1, 1); values.Remove(values.Length - 1, 1); sql.Append(") VALUES ("); sql.Append(values); sql.Append(") "); return(sql.ToString()); }
internal void Reset() { if (OriginalValue == null || OriginalValue.Count == 0) { return; } try { IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(this.GetType()); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsLoad == false) {//判断是否加载 continue; } object value = OriginalValue.ContainsKey(property.Name) ? OriginalValue[property.Name] : null; property.SetValue(this, value); } } catch (Exception ex) { LogProxy.Error(ex, false); } }
public static string UpdateBuilder(SRO obj, out IMyDbParameter[] prams) { List <IMyDbParameter> pramList = new List <IMyDbParameter>(); Type type = obj.GetType(); StringBuilder sql = new StringBuilder("UPDATE [{0}] SET "); bool isModified = false; IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(obj.GetType()); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsSave == false || property.Name == "CreatedDate" || property.Name == "Version") {//判断是否保存 continue; } object pValue = property.GetValue(obj); if (property.Name == "Id" || property.Name == "LastAlterDate") { pramList.Add(ParameterBuilder(property, pValue)); continue; } if (property.PropertyType == typeof(DateTime) && (DateTime)pValue == DateTime.MinValue && obj.GetOriginalValue(property.Name) == null) { continue; } else if (object.Equals(obj.GetOriginalValue(property.Name), pValue)) { continue; } if (!isModified) { isModified = true; } sql.Append("["); sql.Append(property.Name); sql.Append("]=@"); sql.Append(property.Name); sql.Append(","); pramList.Add(ParameterBuilder(property, pValue)); } if (isModified == false) { prams = null; return(null); } prams = pramList.ToArray(); sql.Append(string.Format("[LastAlterDate]=@LastAlterDate,[Version]={0} WHERE [Id]=@Id AND [Version]={1}", ++obj.Version, (long)obj.GetOriginalValue("Version"))); return(sql.ToString()); }
public static string UpdateBuilder(SRO obj, out IMyDbParameter[] prams) { List <IMyDbParameter> pramList = new List <IMyDbParameter>(); Type type = obj.GetType(); StringBuilder sql = new StringBuilder("UPDATE [{0}] SET "); bool isModified = false; IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(obj.GetType()); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsSave == false || property.Name == "CreatedDate" || property.Name == "LastAlterDate") {//判断是否保存 continue; } object pValue = property.GetValue(obj); if (property.Name == "Id") { pramList.Add(ParameterBuilder(property, pValue)); continue; } if (object.Equals(obj.GetOriginalValue(property.Name), pValue)) { continue; } isModified = true; sql.Append("["); sql.Append(property.Name); sql.Append("]=@"); sql.Append(property.Name); sql.Append(","); pramList.Add(ParameterBuilder(property, pValue)); } if (isModified == false) { prams = null; return(null); } prams = pramList.ToArray(); sql.Append(string.Format("[LastAlterDate]='{0}' WHERE [Id]=@Id", obj.LastAlterDate)); return(sql.ToString()); }
private T LoadObject <T>(IDataReader dataReader) where T : SRO, new() { T obj = CreateObject <T>(); Type type = typeof(T); IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(type); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsLoad == false && property.IsSave == false) {//判断是否加载 continue; } object value = dataReader[property.Name]; if (value == DBNull.Value) { continue; } if (property.IsLoad) { property.SetValue(obj, value); } if (property.PropertyType.IsEnum) { obj.SetOriginalValue(property.Name, Enum.Parse(property.PropertyType, value.ToString())); } else { obj.SetOriginalValue(property.Name, value); } } IMyPropertyInfo isNew = PropertyInfoProxy.GetProperty(type, "IsNew"); isNew.SetValue(obj, false); AddCache(obj); return(obj); }
private static SRO LoadObject(Type type, IDataReader dataReader) { SRO obj = CreateObject(type) as SRO; if (obj == null) { return(null); } IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(type); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsLoad == false) {//判断是否加载 continue; } object value = dataReader[property.Name]; if (value == DBNull.Value) { continue; } property.SetValue(obj, value); obj.SetOriginalValue(property.Name, property.GetValue(obj)); } IMyPropertyInfo isNew = PropertyInfoProxy.GetProperty(type, "IsNew"); isNew.SetValue(obj, false); AddCache(obj); return(obj); }
private static IMyDbParameter[] InsertParametersBuilder(SRO obj) { List <IMyDbParameter> prams = new List <IMyDbParameter>(); IMyPropertyInfo[] myPropertys = PropertyInfoProxy.GetProperties(obj.GetType()); foreach (IMyPropertyInfo property in myPropertys) { if (property.IsSave == false) {//判断是否保存 continue; } object pValue = property.GetValue(obj); if (pValue == null) { pValue = DBNull.Value; } prams.Add(ParameterBuilder(property, pValue)); } return(prams.ToArray()); }