Update NavigteManger

This commit is contained in:
sunkaixuan 2022-06-07 19:15:39 +08:00
parent f9a6ea94ed
commit 016df23f44
2 changed files with 35 additions and 2 deletions

View File

@ -89,7 +89,11 @@ namespace OrmTest
var list2=db.Queryable<OperatorInfo>()
.Includes(x => x.Roles.MappingField(z=>z.name,()=>x.username).ToList())
.ToList();
}
var list4 = db.Queryable<OperatorInfo>()
.Includes(x => x.Roles.Skip(10).Take(1).ToList())
.ToList();
}
/// <summary>
/// 描述:

View File

@ -250,13 +250,42 @@ namespace SqlSugar
}
else
{
navObjectNamePropety.SetValue(listItem, instance);
if (sql.Skip != null || sql.Take != null)
{
var instanceCast = (instance as IList);
var newinstance = Activator.CreateInstance(navObjectNamePropety.PropertyType, true) as IList;
SkipTakeIList(sql, instanceCast, newinstance);
navObjectNamePropety.SetValue(listItem, newinstance);
}
else
{
navObjectNamePropety.SetValue(listItem, instance);
}
}
}
}
}
}
private static void SkipTakeIList(SqlInfo sql, IList instanceCast, IList newinstance)
{
var intArray = Enumerable.Range(0, instanceCast.Count);
if (sql.Skip != null)
{
intArray = intArray
.Skip(sql.Skip.Value);
}
if (sql.Take != null)
{
intArray = intArray
.Take(sql.Take.Value);
}
foreach (var i in intArray)
{
newinstance.Add(instanceCast[i]);
}
}
private void OneToOne(List<object> list, Func<ISugarQueryable<object>, List<object>> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo)
{
var navColumn = listItemEntity.Columns.FirstOrDefault(it => it.PropertyName == navObjectNameColumnInfo.Navigat.Name);