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)
|
||||
{
|
||||
var inValueIEnumerable = (IEnumerable)model.Args[0].MemberValue;
|
||||
List<object> inValues = new List<object>();
|
||||
List<object> inValues = new List<object>();
|
||||
if (inValueIEnumerable != null)
|
||||
{
|
||||
foreach (var item in inValueIEnumerable)
|
||||
@@ -145,10 +145,14 @@ namespace SqlSugar
|
||||
var isNvarchar = model.Args.Count == 3;
|
||||
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();
|
||||
}
|
||||
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
|
||||
{
|
||||
inValueString = inValues.ToArray().ToJoinSqlInVals();
|
||||
|
||||
@@ -103,11 +103,19 @@ namespace SqlSugar
|
||||
{
|
||||
var attr= this.ProPertyEntity.Type.GetCustomAttribute<TenantAttribute>();
|
||||
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;
|
||||
tableName = queryable.QueryBuilder.LambdaExpressions.DbMehtods.GetTableWithDataBase
|
||||
(queryable.QueryBuilder.Builder.GetTranslationColumnName(dbName), queryable.QueryBuilder.Builder.GetTranslationColumnName(tableName));
|
||||
var context = this.context.Root.GetConnection(attr.configId);
|
||||
var dbName = context.Ado.Connection.Database;
|
||||
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;
|
||||
|
||||
@@ -18,6 +18,27 @@ namespace SqlSugar
|
||||
{
|
||||
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)
|
||||
{
|
||||
var columnInfo = new List<Tuple<string, Type>>();
|
||||
|
||||
Reference in New Issue
Block a user