Synchronization code

This commit is contained in:
sunkaixuan
2022-12-01 02:58:58 +08:00
parent 344992886a
commit bb664be191
10 changed files with 100 additions and 1 deletions

View File

@@ -833,6 +833,18 @@ namespace SqlSugar
{ {
return new SaveableProvider<T>(this, saveObject); return new SaveableProvider<T>(this, saveObject);
} }
public StorageableDataTable Storageable(List<Dictionary<string, object>> dictionaryList, string tableName)
{
DataTable dt = this.Context.Utilities.DictionaryListToDataTable(dictionaryList);
dt.TableName = tableName;
return this.Context.Storageable(dt);
}
public StorageableDataTable Storageable(Dictionary<string, object> dictionary, string tableName)
{
DataTable dt = this.Context.Utilities.DictionaryListToDataTable(new List<Dictionary<string, object>>() { dictionary });
dt.TableName = tableName;
return this.Context.Storageable(dt);
}
public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new() public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new()
{ {
this.InitMappingInfo<T>(); this.InitMappingInfo<T>();

View File

@@ -566,6 +566,14 @@ namespace SqlSugar
{ {
return ScopedContext.SqlQueryable<T>(sql); return ScopedContext.SqlQueryable<T>(sql);
} }
public StorageableDataTable Storageable(List<Dictionary<string, object>> dictionaryList, string tableName)
{
return ScopedContext.Storageable(dictionaryList, tableName);
}
public StorageableDataTable Storageable(Dictionary<string, object> dictionary, string tableName)
{
return ScopedContext.Storageable(dictionary, tableName);
}
public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new() public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new()
{ {

View File

@@ -681,5 +681,13 @@ namespace SqlSugar
model.Args[0].MemberName = name; model.Args[0].MemberName = name;
return AggregateSum(model); return AggregateSum(model);
} }
public virtual string JsonListObjectAny(MethodCallExpressionModel model)
{
throw new NotImplementedException("Current database no support");
}
public virtual string JsonArrayAny(MethodCallExpressionModel model)
{
throw new NotImplementedException("Current database no support");
}
} }
} }

View File

@@ -100,5 +100,7 @@ namespace SqlSugar
string JsonLike(MethodCallExpressionModel model); string JsonLike(MethodCallExpressionModel model);
string Collate(MethodCallExpressionModel model); string Collate(MethodCallExpressionModel model);
string AggregateSumNoNull(MethodCallExpressionModel model); string AggregateSumNoNull(MethodCallExpressionModel model);
string JsonListObjectAny(MethodCallExpressionModel model);
string JsonArrayAny(MethodCallExpressionModel model);
} }
} }

View File

@@ -256,5 +256,15 @@ namespace SqlSugar
public static DateTime Oracle_ToDate(string date,string format) { throw new NotSupportedException("Can only be used in expressions"); } public static DateTime Oracle_ToDate(string date,string format) { throw new NotSupportedException("Can only be used in expressions"); }
public static string Oracle_ToChar(DateTime date, string format) { throw new NotSupportedException("Can only be used in expressions"); } public static string Oracle_ToChar(DateTime date, string format) { throw new NotSupportedException("Can only be used in expressions"); }
public static int SqlServer_DateDiff(string dateType,DateTime date1,DateTime date2) { throw new NotSupportedException("Can only be used in expressions"); } public static int SqlServer_DateDiff(string dateType,DateTime date1,DateTime date2) { throw new NotSupportedException("Can only be used in expressions"); }
public static bool JsonListObjectAny(object jsonListObject, string fieldName, object value)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static bool JsonArrayAny(object jsonArray,object arrayValue)
{
throw new NotSupportedException("Can only be used in expressions");
}
} }
} }

View File

@@ -752,6 +752,10 @@ namespace SqlSugar
return this.Context.DbMehtods.Collate(model); return this.Context.DbMehtods.Collate(model);
case "AggregateSumNoNull": case "AggregateSumNoNull":
return this.Context.DbMehtods.AggregateSumNoNull(model); return this.Context.DbMehtods.AggregateSumNoNull(model);
case "JsonListObjectAny":
return this.Context.DbMehtods.JsonListObjectAny(model);
case "JsonArrayAny":
return this.Context.DbMehtods.JsonArrayAny(model);
default: default:
break; break;
} }

View File

@@ -137,6 +137,8 @@ namespace SqlSugar
#endregion #endregion
#region Saveable #region Saveable
StorageableDataTable Storageable(List<Dictionary<string, object>> dictionaryList, string tableName);
StorageableDataTable Storageable(Dictionary<string, object> dictionary, string tableName);
IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new(); IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new();
IStorageable<T> Storageable<T>(T data) where T : class, new(); IStorageable<T> Storageable<T>(T data) where T : class, new();
StorageableDataTable Storageable(DataTable data); StorageableDataTable Storageable(DataTable data);

View File

@@ -217,5 +217,28 @@ namespace SqlSugar
{ {
return $"{memberName1}->\"$.{memberName2}\""; return $"{memberName1}->\"$.{memberName2}\"";
} }
public override string JsonArrayAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[1].MemberValue.GetType().Name))
{
return $"JSON_CONTAINS({model.Args[0].MemberName}, '{model.Args[1].MemberValue}')";
}
else
{
return $"JSON_CONTAINS({model.Args[0].MemberName}, '\"{model.Args[1].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"')";
}
}
public override string JsonListObjectAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name))
{
return $"JSON_CONTAINS({model.Args[0].MemberName},'{{\"{model.Args[1].MemberValue}\":{model.Args[2].MemberValue}}}')";
}
else
{
return $"JSON_CONTAINS({model.Args[0].MemberName},'{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}')";
}
}
} }
} }

View File

@@ -443,5 +443,28 @@ namespace SqlSugar
//var parameter1 = model.Args[1]; //var parameter1 = model.Args[1];
return $" ({parameter.MemberName}::json) "; return $" ({parameter.MemberName}::json) ";
} }
public override string JsonArrayAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[1].MemberValue.GetType().Name))
{
return $"{model.Args[0].MemberName}::jsonb @> '[{model.Args[1].MemberValue.ObjToStringNoTrim().ToSqlFilter()}]'::jsonb";
}
else
{
return $"{model.Args[0].MemberName}::jsonb @> '[\"{model.Args[1].MemberValue}\"]'::jsonb";
}
}
public override string JsonListObjectAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name))
{
return $"{model.Args[0].MemberName}::jsonb @> '[{{\"{model.Args[1].MemberValue}\":{model.Args[2].MemberValue}}}]'::jsonb";
}
else
{
return $"{model.Args[0].MemberName}::jsonb @> '[{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}]'::jsonb";
}
}
} }
} }

View File

@@ -569,7 +569,14 @@ namespace SqlSugar
{ {
return ScopedContext.SqlQueryable<T>(sql); return ScopedContext.SqlQueryable<T>(sql);
} }
public StorageableDataTable Storageable(List<Dictionary<string, object>> dictionaryList, string tableName)
{
return ScopedContext.Storageable(dictionaryList, tableName);
}
public StorageableDataTable Storageable(Dictionary<string, object> dictionary, string tableName)
{
return ScopedContext.Storageable(dictionary, tableName);
}
public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new() public IStorageable<T> Storageable<T>(List<T> dataList) where T : class, new()
{ {
return ScopedContext.Storageable(dataList); return ScopedContext.Storageable(dataList);