Synchronization code

This commit is contained in:
sunkaixuan
2022-12-20 17:12:30 +08:00
parent 03fdcfa60c
commit d20313fa1d
7 changed files with 60 additions and 4 deletions

View File

@@ -293,6 +293,8 @@ namespace SqlSugar
column.CreateTableFieldSort = sugarColumn.CreateTableFieldSort;
column.InsertServerTime = sugarColumn.InsertServerTime;
column.InsertSql = sugarColumn.InsertSql;
column.UpdateServerTime= sugarColumn.UpdateServerTime;
column.UpdateSql= sugarColumn.UpdateSql;
if (sugarColumn.IsJson && String.IsNullOrEmpty(sugarColumn.ColumnDataType))
{
if (this.Context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)

View File

@@ -255,7 +255,7 @@ namespace SqlSugar
return setValue.First().Value;
}
}
var result = Builder.GetTranslationColumnName(it.DbColumnName) + "=" + this.Context.Ado.SqlParameterKeyWord + it.DbColumnName;
var result = Builder.GetTranslationColumnName(it.DbColumnName) + "=" + GetDbColumn(it,this.Context.Ado.SqlParameterKeyWord + it.DbColumnName);
return result;
}));
string whereString = null;
@@ -386,5 +386,36 @@ namespace SqlSugar
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
}
public virtual string GetDbColumn(DbColumnInfo columnInfo, object name)
{
if (columnInfo.UpdateServerTime)
{
return LambdaExpressions.DbMehtods.GetDate();
}
else if (columnInfo.UpdateSql.HasValue())
{
return columnInfo.UpdateSql;
}
else
{
return name + "";
}
}
public virtual string GetDbColumn(DbColumnInfo columnInfo, string name)
{
if (columnInfo.UpdateServerTime)
{
return LambdaExpressions.DbMehtods.GetDate();
}
else if (columnInfo.UpdateSql.HasValue())
{
return columnInfo.UpdateSql;
}
else
{
return name + "";
}
}
}
}

View File

@@ -206,7 +206,9 @@ namespace SqlSugar
PropertyName = column.PropertyName,
PropertyType = UtilMethods.GetUnderType(column.PropertyInfo),
SqlParameterDbType = column.SqlParameterDbType,
TableId = i
TableId = i,
UpdateSql=column.UpdateSql,
UpdateServerTime= column.UpdateServerTime
};
if (columnInfo.PropertyType.IsEnum() && columnInfo.Value != null)
{

View File

@@ -447,7 +447,7 @@ namespace SqlSugar
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(key), value));
}
}
this.UpdateBuilder.DbColumnInfoList = UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
this.UpdateBuilder.DbColumnInfoList = UpdateBuilder.DbColumnInfoList.Where(it =>it.UpdateServerTime==true||it.UpdateSql.HasValue()|| (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
CheckTranscodeing(false);
AppendSets();
return this;
@@ -491,7 +491,22 @@ namespace SqlSugar
}
}
}
this.UpdateBuilder.DbColumnInfoList = UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
if (this.EntityInfo.Columns.Any(it => it.InsertServerTime || it.UpdateSql.HasValue()))
{
var appendColumns = this.EntityInfo.Columns.Where(it => it.InsertServerTime || it.UpdateSql.HasValue());
foreach (var item in appendColumns)
{
if (item.UpdateServerTime)
{
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(item.DbColumnName), SqlBuilder.GetTranslationColumnName(item.DbColumnName) + "=" + UpdateBuilder.LambdaExpressions.DbMehtods.GetDate()));
}
else if (item.UpdateSql.HasValue())
{
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(item.DbColumnName), SqlBuilder.GetTranslationColumnName(item.DbColumnName) + "=" + item.UpdateSql));
}
}
}
this.UpdateBuilder.DbColumnInfoList = UpdateBuilder.DbColumnInfoList.Where(it =>it.UpdateServerTime||it.UpdateSql.HasValue()|| (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
CheckTranscodeing(false);
AppendSets();
return this;

View File

@@ -28,6 +28,8 @@ namespace SqlSugar
public int CreateTableFieldSort { get; set; }
public bool InsertServerTime { get; set; }
public string InsertSql { get; set; }
public bool UpdateServerTime { get; set; }
public string UpdateSql { get; set; }
internal object SqlParameterDbType { get; set; }
}
}

View File

@@ -43,5 +43,7 @@ namespace SqlSugar
public object SqlParameterSize { get; set; }
public string InsertSql { get; set; }
public bool InsertServerTime { get; set; }
public bool UpdateServerTime { get; set; }
public string UpdateSql { get; set; }
}
}

View File

@@ -209,6 +209,8 @@ namespace SqlSugar
public int CreateTableFieldSort { get; set; }
public bool InsertServerTime { get; set; }
public string InsertSql { get; set; }
public bool UpdateServerTime { get; set; }
public string UpdateSql { get; set; }
}