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()); }