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
2c6c405b33
commit
444e5768c6
@ -320,7 +320,14 @@ namespace SqlSugar
|
||||
{
|
||||
if (entityInfo.Type.GetCustomAttribute<SplitTableAttribute>() != null)
|
||||
{
|
||||
item.IndexName = item.IndexName + entityInfo.DbTableName;
|
||||
if (item.IndexName?.Contains("{split_table}") == true)
|
||||
{
|
||||
item.IndexName = item.IndexName.Replace("{split_table}", entityInfo.DbTableName);
|
||||
}
|
||||
else
|
||||
{
|
||||
item.IndexName = item.IndexName + entityInfo.DbTableName;
|
||||
}
|
||||
}
|
||||
if (this.Context.CurrentConnectionConfig.IndexSuffix.HasValue())
|
||||
{
|
||||
|
@ -270,7 +270,7 @@ namespace SqlSugar
|
||||
|
||||
private void ResolveMemberValue(ExpressionParameter parameter, ExpressionParameter baseParameter, MemberExpression expression, bool? isLeft, bool isSetTempData)
|
||||
{
|
||||
var nav = new OneToOneNavgateExpression(this.Context?.SugarContext?.Context);
|
||||
var nav = new OneToOneNavgateExpression(this.Context?.SugarContext?.Context,this);
|
||||
nav.ExpContext = this.Context;
|
||||
var navN = new OneToOneNavgateExpressionN(this.Context?.SugarContext?.Context);
|
||||
if (nav.IsNavgate(expression))
|
||||
|
@ -17,9 +17,11 @@ namespace SqlSugar
|
||||
private Navigate Navigat;
|
||||
public string ShorName;
|
||||
internal string MemberName;
|
||||
public OneToOneNavgateExpression(SqlSugarProvider context)
|
||||
private MemberExpressionResolve _memberExpressionResolve;
|
||||
public OneToOneNavgateExpression(SqlSugarProvider context, MemberExpressionResolve memberExpressionResolve)
|
||||
{
|
||||
this.context = context;
|
||||
_memberExpressionResolve= memberExpressionResolve;
|
||||
}
|
||||
|
||||
internal bool IsNavgate(Expression expression)
|
||||
@ -110,8 +112,24 @@ namespace SqlSugar
|
||||
(queryable.QueryBuilder.Builder.GetTranslationColumnName(dbName), queryable.QueryBuilder.Builder.GetTranslationColumnName(tableName));
|
||||
}
|
||||
}
|
||||
Type[] clearTypes = null;
|
||||
var isClearFilter = false;
|
||||
if (this._memberExpressionResolve?.Context?.SugarContext?.QueryBuilder != null)
|
||||
{
|
||||
queryable.QueryBuilder.LambdaExpressions.ParameterIndex = 500 + this._memberExpressionResolve.Context.SugarContext.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
this._memberExpressionResolve.Context.SugarContext.QueryBuilder.LambdaExpressions.ParameterIndex++;
|
||||
isClearFilter = this._memberExpressionResolve.Context.SugarContext.QueryBuilder.IsDisabledGobalFilter;
|
||||
clearTypes = this._memberExpressionResolve.Context.SugarContext.QueryBuilder.RemoveFilters;
|
||||
}
|
||||
var type = this.ProPertyEntity.Columns.Count(it => it.IsPrimarykey) > 1 ? this.ProPertyEntity.Type : null;
|
||||
if (isClearFilter)
|
||||
{
|
||||
type = null;
|
||||
}
|
||||
mapper.Sql = queryable
|
||||
.AS(tableName)
|
||||
.ClearFilter(clearTypes)
|
||||
.Filter(type)
|
||||
.WhereIF(Navigat.WhereSql.HasValue(),Navigat.WhereSql)
|
||||
.Where($" {queryable.SqlBuilder.GetTranslationColumnName(ShorName)}.{name}={pk} ").Select(selectName).ToSql().Key;
|
||||
mapper.Sql = $" ({mapper.Sql}) ";
|
||||
|
Loading…
Reference in New Issue
Block a user