mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-27 03:09:34 +08:00
Synchronization code
This commit is contained in:
@@ -115,7 +115,7 @@ namespace SqlSugar
|
|||||||
public virtual string ContainsArray(MethodCallExpressionModel model)
|
public virtual string ContainsArray(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var inValueIEnumerable = (IEnumerable)model.Args[0].MemberValue;
|
var inValueIEnumerable = (IEnumerable)model.Args[0].MemberValue;
|
||||||
List<object> inValues = new List<object>();
|
List<object> inValues = new List<object>();
|
||||||
if (inValueIEnumerable != null)
|
if (inValueIEnumerable != null)
|
||||||
{
|
{
|
||||||
foreach (var item in inValueIEnumerable)
|
foreach (var item in inValueIEnumerable)
|
||||||
@@ -145,10 +145,14 @@ namespace SqlSugar
|
|||||||
var isNvarchar = model.Args.Count == 3;
|
var isNvarchar = model.Args.Count == 3;
|
||||||
if (inValues != null && inValues.Count > 0)
|
if (inValues != null && inValues.Count > 0)
|
||||||
{
|
{
|
||||||
if (isNvarchar&& model.Args[2].MemberValue.Equals(true))
|
if (isNvarchar && model.Args[2].MemberValue.Equals(true))
|
||||||
{
|
{
|
||||||
inValueString = inValues.ToArray().ToJoinSqlInValsN();
|
inValueString = inValues.ToArray().ToJoinSqlInValsN();
|
||||||
}
|
}
|
||||||
|
else if (inValues.Any()&&inValues.FirstOrDefault() is bool &&inValues.All(it => it is bool))
|
||||||
|
{
|
||||||
|
inValueString = string.Join(",", inValues.Select(it => Convert.ToBoolean(it) ? 1 : 0));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
inValueString = inValues.ToArray().ToJoinSqlInVals();
|
inValueString = inValues.ToArray().ToJoinSqlInVals();
|
||||||
|
|||||||
@@ -103,11 +103,19 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var attr= this.ProPertyEntity.Type.GetCustomAttribute<TenantAttribute>();
|
var attr= this.ProPertyEntity.Type.GetCustomAttribute<TenantAttribute>();
|
||||||
var configId = ((object)this.context.CurrentConnectionConfig.ConfigId).ObjToString();
|
var configId = ((object)this.context.CurrentConnectionConfig.ConfigId).ObjToString();
|
||||||
if (attr != null&& configId != attr.configId.ObjToString())
|
if (attr != null && configId != attr.configId.ObjToString())
|
||||||
{
|
{
|
||||||
var dbName = this.context.Root.GetConnection(attr.configId).Ado.Connection.Database;
|
var context = this.context.Root.GetConnection(attr.configId);
|
||||||
tableName = queryable.QueryBuilder.LambdaExpressions.DbMehtods.GetTableWithDataBase
|
var dbName = context.Ado.Connection.Database;
|
||||||
(queryable.QueryBuilder.Builder.GetTranslationColumnName(dbName), queryable.QueryBuilder.Builder.GetTranslationColumnName(tableName));
|
if (context.CurrentConnectionConfig.DbLinkName.HasValue())
|
||||||
|
{
|
||||||
|
tableName = UtilMethods.GetTableByDbLink(context, tableName, tableName, attr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tableName = queryable.QueryBuilder.LambdaExpressions.DbMehtods.GetTableWithDataBase
|
||||||
|
(queryable.QueryBuilder.Builder.GetTranslationColumnName(dbName), queryable.QueryBuilder.Builder.GetTranslationColumnName(tableName));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Type[] clearTypes = null;
|
Type[] clearTypes = null;
|
||||||
|
|||||||
@@ -18,6 +18,27 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public class UtilMethods
|
public class UtilMethods
|
||||||
{
|
{
|
||||||
|
internal static string GetTableByDbLink(SqlSugarProvider context,string tableName, string oldTableName, TenantAttribute attr)
|
||||||
|
{
|
||||||
|
QueryBuilder queryBuilder=InstanceFactory.GetQueryBuilderWithContext(context);
|
||||||
|
var dbLinkName = context.Root.GetConnection(attr.configId).CurrentConnectionConfig.DbLinkName;
|
||||||
|
if (dbLinkName != null)
|
||||||
|
{
|
||||||
|
if (dbLinkName.First() == '@')
|
||||||
|
{
|
||||||
|
tableName = queryBuilder.Builder.GetTranslationColumnName(oldTableName) + dbLinkName;
|
||||||
|
}
|
||||||
|
else if (dbLinkName.Last() == '_')
|
||||||
|
{
|
||||||
|
tableName = dbLinkName + oldTableName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tableName = dbLinkName + "." + queryBuilder.Builder.GetTranslationColumnName(oldTableName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tableName;
|
||||||
|
}
|
||||||
public static List<Tuple<string, Type>> GetColumnInfo(IDataReader reader)
|
public static List<Tuple<string, Type>> GetColumnInfo(IDataReader reader)
|
||||||
{
|
{
|
||||||
var columnInfo = new List<Tuple<string, Type>>();
|
var columnInfo = new List<Tuple<string, Type>>();
|
||||||
|
|||||||
Reference in New Issue
Block a user