Synchronization code

This commit is contained in:
sunkaixuan
2022-12-17 13:21:51 +08:00
parent eae35cd037
commit 81850db4ef
14 changed files with 53 additions and 13 deletions

View File

@@ -14,6 +14,10 @@ namespace SqlSugar
{
return db.Ado.SqlQuery<string>(this.GetDataBaseSql);
}
public virtual List<string> GetDataBaseList()
{
return this.Context.Ado.SqlQuery<string>(this.GetDataBaseSql);
}
public virtual List<DbTableInfo> GetViewInfoList(bool isCache = true)
{
string cacheKey = "DbMaintenanceProvider.GetViewInfoList" + this.Context.CurrentConnectionConfig.ConfigId;

View File

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

View File

@@ -210,7 +210,9 @@ namespace SqlSugar
DbColumnName = column.DbColumnName,
PropertyName = column.PropertyName,
PropertyType = UtilMethods.GetUnderType(column.PropertyInfo),
TableId = i
TableId = i,
InsertSql = column.InsertSql,
InsertServerTime = column.InsertServerTime
};
if (column.DbColumnName == null)
{

View File

@@ -162,7 +162,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle)
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>this.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName)));
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
}
else
@@ -191,7 +191,7 @@ namespace SqlSugar
{
batchInsetrSql.Append(SqlTemplateBatchUnion);
}
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value),Builder.GetTranslationColumnName(it.DbColumnName)))));
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect,this.GetDbColumn(it, FormatValue(it.Value)),Builder.GetTranslationColumnName(it.DbColumnName)))));
++i;
}
pageIndex++;
@@ -272,6 +272,23 @@ 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.InsertServerTime)
{
return LambdaExpressions.DbMehtods.GetDate();
}
else if (columnInfo.InsertSql.HasValue())
{
return columnInfo.InsertSql;
}
else
{
return name+"";
}
}
#endregion
}
}

View File

@@ -26,6 +26,8 @@ namespace SqlSugar
public bool IsJson { get; set; }
public bool? IsUnsigned { get; set; }
public int CreateTableFieldSort { get; set; }
public bool InsertServerTime { get; set; }
public string InsertSql { get; set; }
internal object SqlParameterDbType { get; set; }
}
}

View File

@@ -41,5 +41,7 @@ namespace SqlSugar
public Navigate Navigat { get; set; }
public int CreateTableFieldSort { get; set; }
public object SqlParameterSize { get; set; }
public string InsertSql { get; set; }
public bool InsertServerTime { get; set; }
}
}

View File

@@ -207,6 +207,8 @@ namespace SqlSugar
public object SqlParameterDbType { get; set; }
public object SqlParameterSize { get; set; }
public int CreateTableFieldSort { get; set; }
public bool InsertServerTime { get; set; }
public string InsertSql { get; set; }
}

View File

@@ -10,6 +10,7 @@ namespace SqlSugar
#region DML
List<string> GetDataBaseList(SqlSugarClient db);
List<string> GetDataBaseList();
List<DbTableInfo> GetViewInfoList(bool isCache=true);
List<DbTableInfo> GetTableInfoList(bool isCache=true);
List<DbColumnInfo> GetColumnInfosByTableName(string tableName,bool isCache=true);

View File

@@ -125,7 +125,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle)
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName)));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
}
@@ -140,7 +140,7 @@ namespace SqlSugar
foreach (var item in groupList)
{
batchInsetrSql.Append("(");
insertColumns = string.Join(",", item.Select(it => FormatValue(it.Value,it.PropertyName)));
insertColumns = string.Join(",", item.Select(it =>base.GetDbColumn(it, FormatValue(it.Value,it.PropertyName))));
batchInsetrSql.Append(insertColumns);
if (groupList.Last() == item)
{

View File

@@ -38,7 +38,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle&&this.EntityInfo.EntityName!= "Dictionary`2")
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName)));
if (identities.HasValue())
{
columnsString = columnsString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
@@ -99,7 +99,7 @@ namespace SqlSugar
batchInsetrSql.Append("(");
insertColumns = string.Join(",", item.Select(it => FormatValue(it.Value, it.PropertyName)));
insertColumns = string.Join(",", item.Select(it =>GetDbColumn(it, FormatValue(it.Value, it.PropertyName))));
batchInsetrSql.Append(insertColumns);
if (identities.HasValue())
{

View File

@@ -47,7 +47,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle)
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName)));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
}
@@ -75,6 +75,10 @@ namespace SqlSugar
}
batchInsetrSql.Append("\r\n ( " + string.Join(",", columns.Select(it =>
{
if (it.InsertServerTime || it.InsertSql.HasValue())
{
return GetDbColumn(it, null);
}
object value = null;
if (it.Value is DateTime)
{

View File

@@ -50,7 +50,7 @@ namespace SqlSugar
//{
// return $"to_timestamp('{it.Value.ObjToString("yyyy-MM-ddTHH:mm:ss")}', 'yyyy-MM-ddTHH:mm:ss')";
//}
return spk;
return GetDbColumn(it,spk);
}
));
@@ -77,6 +77,10 @@ namespace SqlSugar
}
batchInsetrSql.Append("\r\n ( " + string.Join(",", columns.Select(it =>
{
if (it.InsertServerTime || it.InsertSql.HasValue())
{
return GetDbColumn(it,null);
}
object value = null;
if (it.Value is DateTime)
{

View File

@@ -24,7 +24,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle)
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>base.GetDbColumn(it,Builder.SqlParameterKeyWord + it.DbColumnName)));
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
}
else
@@ -57,7 +57,7 @@ namespace SqlSugar
{
batchInsetrSql.Append(SqlTemplateBatchUnion);
}
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), Builder.GetTranslationColumnName(it.DbColumnName)))));
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect,base.GetDbColumn(it, FormatValue(it.Value)), Builder.GetTranslationColumnName(it.DbColumnName)))));
++i;
}
pageIndex++;

View File

@@ -46,7 +46,7 @@ namespace SqlSugar
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
if (isSingle)
{
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it =>base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName)));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
}
@@ -62,7 +62,7 @@ namespace SqlSugar
foreach (var item in groupList)
{
batchInsetrSql.Append("(");
insertColumns = string.Join(",", item.Select(it => FormatValue(i,it.DbColumnName,it.Value)));
insertColumns = string.Join(",", item.Select(it =>base.GetDbColumn(it, FormatValue(i,it.DbColumnName,it.Value))));
batchInsetrSql.Append(insertColumns);
if (groupList.Last() == item)
{