mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-05 17:37:58 +08:00
Synchronization code
This commit is contained in:
parent
b0d6a4bb0d
commit
b85b5f300d
@ -344,6 +344,10 @@ namespace SqlSugar
|
||||
{
|
||||
ids = ids.Select(it => Convert.ToInt64(it)).Cast<object>().ToList();
|
||||
}
|
||||
if (navPkColumn?.UnderType?.Name == UtilConstants.StringType.Name)
|
||||
{
|
||||
ids = ids.Select(it => it?.ToString()?.Replace(",", "[comma]")).Cast<object>().ToList();
|
||||
}
|
||||
conditionalModels.Add((new ConditionalModel()
|
||||
{
|
||||
ConditionalType = ConditionalType.In,
|
||||
@ -415,6 +419,10 @@ namespace SqlSugar
|
||||
{
|
||||
ids = ids.Select(it => Convert.ToInt64(it)).Cast<object>().ToList();
|
||||
}
|
||||
if (navColumn?.UnderType?.Name == UtilConstants.StringType.Name)
|
||||
{
|
||||
ids = ids.Select(it => it?.ToString()?.Replace(",", "[comma]")).Cast<object>().ToList();
|
||||
}
|
||||
conditionalModels.Add((new ConditionalModel()
|
||||
{
|
||||
ConditionalType = ConditionalType.In,
|
||||
|
@ -265,6 +265,10 @@ namespace SqlSugar
|
||||
{
|
||||
inValue1 = inValue1.Replace("'null'", "null");
|
||||
}
|
||||
else if (inValue1.Contains("[comma]"))
|
||||
{
|
||||
inValue1 = inValue1.Replace("[comma]", ",");
|
||||
}
|
||||
else if (inValue1.Contains("[null]"))
|
||||
{
|
||||
inValue1 = inValue1.Replace("[null]", "null");
|
||||
|
@ -11,7 +11,19 @@ namespace SqlSugar
|
||||
{
|
||||
static Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
static Dictionary<string, Type> typeCache = new Dictionary<string, Type>();
|
||||
public static string CustomDllName = "";
|
||||
private static string _CustomDllName = "";
|
||||
private static List<string> CustomDlls = new List<string>();
|
||||
public static string CustomDllName {
|
||||
get { return _CustomDllName; }
|
||||
set
|
||||
{
|
||||
if (!CustomDlls.Contains(value))
|
||||
{
|
||||
CustomDlls.Add(value);
|
||||
}
|
||||
_CustomDllName = value;
|
||||
}
|
||||
}
|
||||
public static string CustomDbName = "";
|
||||
public static string CustomNamespace = "";
|
||||
public static bool NoCache = false;
|
||||
@ -605,14 +617,30 @@ namespace SqlSugar
|
||||
|
||||
internal static Type GetCustomTypeByClass(string className)
|
||||
{
|
||||
var key = "Assembly_"+ CustomDllName+assembly.GetHashCode();
|
||||
Type type = null;
|
||||
foreach (var item in CustomDlls.AsEnumerable())
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
type = GetCustomTypeByClass(className, item);
|
||||
}
|
||||
if(type != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
internal static Type GetCustomTypeByClass(string className,string customDllName)
|
||||
{
|
||||
var key = "Assembly_" + customDllName + assembly.GetHashCode();
|
||||
var newAssembly = new ReflectionInoCacheService().GetOrCreate<Assembly>(key, () => {
|
||||
try
|
||||
{
|
||||
var path = Assembly.GetExecutingAssembly().Location;
|
||||
if (path.HasValue())
|
||||
{
|
||||
path =System.IO.Path.Combine( System.IO.Path.GetDirectoryName(path), CustomDllName + ".dll");
|
||||
path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(path), customDllName + ".dll");
|
||||
}
|
||||
if (path.HasValue() && FileHelper.IsExistFile(path))
|
||||
{
|
||||
@ -620,15 +648,15 @@ namespace SqlSugar
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsWebFrom)
|
||||
if (IsWebFrom)
|
||||
{
|
||||
string newpath = (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\"+CustomDllName + ".dll").Replace("file:\\", "");
|
||||
string newpath = (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\" + CustomDllName + ".dll").Replace("file:\\", "");
|
||||
return Assembly.LoadFrom(newpath);
|
||||
}
|
||||
return Assembly.LoadFrom(CustomDllName + ".dll");
|
||||
}
|
||||
}
|
||||
catch
|
||||
catch
|
||||
{
|
||||
var message = "Not Found " + CustomDllName + ".dll";
|
||||
Check.Exception(true, message);
|
||||
@ -636,23 +664,38 @@ namespace SqlSugar
|
||||
}
|
||||
});
|
||||
Type type = newAssembly.GetType(className);
|
||||
if (type == null)
|
||||
if (type == null)
|
||||
{
|
||||
type= assembly.GetType(className);
|
||||
type = assembly.GetType(className);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
internal static Type GetCustomTypeByClass<T>(string className)
|
||||
{
|
||||
var key = "Assembly_" + CustomDllName + assembly.GetHashCode();
|
||||
Type type = null;
|
||||
foreach (var item in CustomDlls.AsEnumerable())
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
type = GetCustomTypeByClass<T>(className, item);
|
||||
}
|
||||
if (type != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
internal static Type GetCustomTypeByClass<T>(string className,string customDllName)
|
||||
{
|
||||
var key = "Assembly_" + customDllName + assembly.GetHashCode();
|
||||
var newAssembly = new ReflectionInoCacheService().GetOrCreate<Assembly>(key, () => {
|
||||
try
|
||||
{
|
||||
var path = Assembly.GetExecutingAssembly().Location;
|
||||
if (path.HasValue())
|
||||
{
|
||||
path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(path), CustomDllName + ".dll");
|
||||
path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(path), customDllName + ".dll");
|
||||
}
|
||||
if (path.HasValue() && FileHelper.IsExistFile(path))
|
||||
{
|
||||
|
@ -69,7 +69,7 @@ namespace SqlSugar
|
||||
.FirstOrDefault();
|
||||
}
|
||||
private static string GetMethodName(string name, List<string> methods)
|
||||
{
|
||||
{
|
||||
var result = methods.FirstOrDefault(it => name.EqualCase("SqlFunc_" + it) || name.EqualCase(it));
|
||||
Check.Exception(result == null, $" { name } is error ");
|
||||
return result;
|
||||
@ -92,12 +92,12 @@ namespace SqlSugar
|
||||
string resSql;
|
||||
var args = new List<MethodCallExpressionArgs>();
|
||||
foreach (var item in parameters)
|
||||
{
|
||||
{
|
||||
var value = GetSqlPart(item, resPars);
|
||||
args.Add(new MethodCallExpressionArgs
|
||||
{
|
||||
MemberName = value,
|
||||
MemberValue = value,
|
||||
MemberValue = resPars.FirstOrDefault(it => it.ParameterName == value)?.Value?? value,
|
||||
IsMember = true
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user