Update nav filter

This commit is contained in:
sunkaixuan 2023-12-22 14:24:39 +08:00
parent 0ac5c6bd77
commit 935e45d1b1

View File

@ -336,6 +336,7 @@ namespace SqlSugar
var navEntityInfo = db.EntityMaintenance.GetEntityInfo(navType); var navEntityInfo = db.EntityMaintenance.GetEntityInfo(navType);
db.InitMappingInfo(navEntityInfo.Type); db.InitMappingInfo(navEntityInfo.Type);
var navPkColumn = navEntityInfo.Columns.Where(it => it.IsPrimarykey).FirstOrDefault(); var navPkColumn = navEntityInfo.Columns.Where(it => it.IsPrimarykey).FirstOrDefault();
var navPkCount = navEntityInfo.Columns.Where(it => it.IsPrimarykey).Count();
Check.ExceptionEasy(navPkColumn==null&& navObjectNameColumnInfo.Navigat.Name2==null, navEntityInfo.EntityName+ "need primarykey", navEntityInfo.EntityName + " 需要主键"); Check.ExceptionEasy(navPkColumn==null&& navObjectNameColumnInfo.Navigat.Name2==null, navEntityInfo.EntityName+ "need primarykey", navEntityInfo.EntityName + " 需要主键");
if (navObjectNameColumnInfo.Navigat.Name2.HasValue()) if (navObjectNameColumnInfo.Navigat.Name2.HasValue())
{ {
@ -371,7 +372,7 @@ namespace SqlSugar
.Select(it => GetOneToOneSelectByColumnInfo(it)).ToList(); .Select(it => GetOneToOneSelectByColumnInfo(it)).ToList();
sqlObj.SelectString = String.Join(",", columns); sqlObj.SelectString = String.Join(",", columns);
} }
var navList = selector(db.Queryable<object>().ClearFilter(QueryBuilder.RemoveFilters).Filter(navPkColumn.IsPrimarykey ? null : this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(GetDbTableName(navEntityInfo)) var navList = selector(db.Queryable<object>().ClearFilter(QueryBuilder.RemoveFilters).Filter((navPkColumn.IsPrimarykey&& navPkCount==1) ? null : this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(GetDbTableName(navEntityInfo))
.WhereIF(navObjectNameColumnInfo.Navigat.WhereSql.HasValue(), navObjectNameColumnInfo.Navigat.WhereSql) .WhereIF(navObjectNameColumnInfo.Navigat.WhereSql.HasValue(), navObjectNameColumnInfo.Navigat.WhereSql)
.WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString) .WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString)
.AddParameters(sqlObj.Parameters).Where(conditionalModels) .AddParameters(sqlObj.Parameters).Where(conditionalModels)