mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-24 07:22:57 +08:00
Synchronization code
This commit is contained in:
parent
28f651490c
commit
335f9bd690
@ -10,5 +10,11 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public string DbColumnName { get; set; }
|
public string DbColumnName { get; set; }
|
||||||
public string Sql { get; set; }
|
public string Sql { get; set; }
|
||||||
|
public ReSetValueBySqlExpListModelType? Type { get; set; }
|
||||||
|
}
|
||||||
|
internal enum ReSetValueBySqlExpListModelType
|
||||||
|
{
|
||||||
|
Default,
|
||||||
|
List
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -426,7 +426,14 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (IsListSetExp(columnInfo)|| IsSingleSetExp(columnInfo))
|
else if (IsListSetExp(columnInfo)|| IsSingleSetExp(columnInfo))
|
||||||
{
|
{
|
||||||
return this.ReSetValueBySqlExpList[columnInfo.PropertyName].Sql;
|
if (this.ReSetValueBySqlExpList[columnInfo.PropertyName].Type == ReSetValueBySqlExpListModelType.List)
|
||||||
|
{
|
||||||
|
return columnInfo.DbColumnName+this.ReSetValueBySqlExpList[columnInfo.PropertyName].Sql+name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return this.ReSetValueBySqlExpList[columnInfo.PropertyName].Sql;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (columnInfo.UpdateSql.HasValue())
|
else if (columnInfo.UpdateSql.HasValue())
|
||||||
{
|
{
|
||||||
|
@ -360,6 +360,36 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
public IUpdateable<T> PublicSetColumns(Expression<Func<T, object>> filedNameExpression, string computationalSymbol)
|
||||||
|
{
|
||||||
|
if (UpdateParameterIsNull == true)
|
||||||
|
{
|
||||||
|
Check.Exception(UpdateParameterIsNull == true, ErrorMessage.GetThrowMessage("The PublicSetColumns(exp,string) overload can only be used to update entity objects: db.Updateable(object)", "PublicSetColumns(exp,string)重载只能用在实体对象更新:db.Updateable(对象),请区分表达式更新和实体对象更不同用法 "));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var name = ExpressionTool.GetMemberName(filedNameExpression);
|
||||||
|
if (name == null)
|
||||||
|
{
|
||||||
|
Check.ExceptionEasy(filedNameExpression + " format error ", filedNameExpression + "参数格式错误");
|
||||||
|
}
|
||||||
|
//var value = this.UpdateBuilder.GetExpressionValue(ValueExpExpression, ResolveExpressType.WhereSingle).GetResultString();
|
||||||
|
if (this.UpdateBuilder.ReSetValueBySqlExpList == null)
|
||||||
|
{
|
||||||
|
this.UpdateBuilder.ReSetValueBySqlExpList = new Dictionary<string, ReSetValueBySqlExpListModel>();
|
||||||
|
}
|
||||||
|
if (!this.UpdateBuilder.ReSetValueBySqlExpList.ContainsKey(name))
|
||||||
|
{
|
||||||
|
this.UpdateBuilder.ReSetValueBySqlExpList.Add(name, new ReSetValueBySqlExpListModel()
|
||||||
|
{
|
||||||
|
Type= ReSetValueBySqlExpListModelType.List,
|
||||||
|
Sql = computationalSymbol,
|
||||||
|
DbColumnName = this.SqlBuilder.GetTranslationColumnName(this.EntityInfo.Columns.First(it => it.PropertyName == name).DbColumnName)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public IUpdateable<T> PublicSetColumns(Expression<Func<T, object>> filedNameExpression, Expression<Func<T, object>> ValueExpExpression)
|
public IUpdateable<T> PublicSetColumns(Expression<Func<T, object>> filedNameExpression, Expression<Func<T, object>> ValueExpExpression)
|
||||||
{
|
{
|
||||||
|
@ -100,6 +100,7 @@ namespace SqlSugar
|
|||||||
IUpdateable<T> EnableDiffLogEvent(object businessData = null);
|
IUpdateable<T> EnableDiffLogEvent(object businessData = null);
|
||||||
IUpdateable<T> EnableDiffLogEventIF(bool isEnableDiffLog,object businessData = null);
|
IUpdateable<T> EnableDiffLogEventIF(bool isEnableDiffLog,object businessData = null);
|
||||||
IUpdateable<T> ReSetValue(Action<T> setValueExpression);
|
IUpdateable<T> ReSetValue(Action<T> setValueExpression);
|
||||||
|
IUpdateable<T> PublicSetColumns(Expression<Func<T, object>> filedNameExpression,string computationalSymbol);
|
||||||
IUpdateable<T> PublicSetColumns (Expression<Func<T,object>> filedNameExpression, Expression<Func<T, object>> ValueExpExpression);
|
IUpdateable<T> PublicSetColumns (Expression<Func<T,object>> filedNameExpression, Expression<Func<T, object>> ValueExpExpression);
|
||||||
IUpdateable<T> RemoveDataCache();
|
IUpdateable<T> RemoveDataCache();
|
||||||
IUpdateable<T> RemoveDataCache(string likeString);
|
IUpdateable<T> RemoveDataCache(string likeString);
|
||||||
|
@ -190,7 +190,14 @@ namespace SqlSugar
|
|||||||
foreach (var item in ReSetValueBySqlExpList)
|
foreach (var item in ReSetValueBySqlExpList)
|
||||||
{
|
{
|
||||||
var dbColumnName = item.Value.DbColumnName;
|
var dbColumnName = item.Value.DbColumnName;
|
||||||
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={item.Value.Sql.Replace(dbColumnName, $"{Builder.GetTranslationColumnName(this.TableName)}.{dbColumnName}")}");
|
if (item.Value.Type == ReSetValueBySqlExpListModelType.List)
|
||||||
|
{
|
||||||
|
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={GetTableNameString}.{dbColumnName}{item.Value.Sql}T.{dbColumnName}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={item.Value.Sql.Replace(dbColumnName, $"{Builder.GetTranslationColumnName(this.TableName)}.{dbColumnName}")}");
|
||||||
|
}
|
||||||
batchUpdateSql = new StringBuilder(result);
|
batchUpdateSql = new StringBuilder(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,14 @@ namespace SqlSugar
|
|||||||
foreach (var item in ReSetValueBySqlExpList)
|
foreach (var item in ReSetValueBySqlExpList)
|
||||||
{
|
{
|
||||||
var dbColumnName = item.Value.DbColumnName;
|
var dbColumnName = item.Value.DbColumnName;
|
||||||
result = result.Replace($"T.{dbColumnName}", item.Value.Sql.Replace(dbColumnName, "S." + dbColumnName));
|
if (item.Value.Type == ReSetValueBySqlExpListModelType.List)
|
||||||
|
{
|
||||||
|
result = result.Replace($"T.{dbColumnName}", "S." + dbColumnName+item.Value.Sql+ "T." + dbColumnName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = result.Replace($"T.{dbColumnName}", item.Value.Sql.Replace(dbColumnName, "S." + dbColumnName));
|
||||||
|
}
|
||||||
batchUpdateSql = new StringBuilder(result);
|
batchUpdateSql = new StringBuilder(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,14 @@ namespace SqlSugar
|
|||||||
foreach (var item in ReSetValueBySqlExpList)
|
foreach (var item in ReSetValueBySqlExpList)
|
||||||
{
|
{
|
||||||
var dbColumnName = item.Value.DbColumnName;
|
var dbColumnName = item.Value.DbColumnName;
|
||||||
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={item.Value.Sql.Replace(dbColumnName,$"{Builder.GetTranslationColumnName( this.TableName)}.{dbColumnName}")}");
|
if (item.Value.Type == ReSetValueBySqlExpListModelType.List)
|
||||||
|
{
|
||||||
|
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={GetTableNameString}.{dbColumnName}{item.Value.Sql}T.{dbColumnName}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={item.Value.Sql.Replace(dbColumnName, $"{Builder.GetTranslationColumnName(this.TableName)}.{dbColumnName}")}");
|
||||||
|
}
|
||||||
batchUpdateSql = new StringBuilder(result);
|
batchUpdateSql = new StringBuilder(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,14 @@ namespace SqlSugar
|
|||||||
foreach (var item in ReSetValueBySqlExpList)
|
foreach (var item in ReSetValueBySqlExpList)
|
||||||
{
|
{
|
||||||
var dbColumnName = item.Value.DbColumnName;
|
var dbColumnName = item.Value.DbColumnName;
|
||||||
result = result.Replace($"T.{dbColumnName}", item.Value.Sql.Replace(dbColumnName,"S."+ dbColumnName));
|
if (item.Value.Type==ReSetValueBySqlExpListModelType.List)
|
||||||
|
{
|
||||||
|
result = result.Replace($"T.{dbColumnName}", $" T.{dbColumnName}{item.Value.Sql}S.{dbColumnName}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = result.Replace($"T.{dbColumnName}", item.Value.Sql.Replace(dbColumnName, "S." + dbColumnName));
|
||||||
|
}
|
||||||
batchUpdateSql = new StringBuilder(result);
|
batchUpdateSql = new StringBuilder(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user