mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
Update nav query
This commit is contained in:
@@ -588,17 +588,21 @@ namespace SqlSugar
|
|||||||
var navList = selector(childDb.Queryable<object>(sqlObj.TableShortName).AS(GetDbTableName(navEntityInfo, sqlObj)).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).WhereIF(navObjectNameColumnInfo?.Navigat?.WhereSql != null, navObjectNameColumnInfo?.Navigat?.WhereSql).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString));
|
var navList = selector(childDb.Queryable<object>(sqlObj.TableShortName).AS(GetDbTableName(navEntityInfo, sqlObj)).ClearFilter(QueryBuilder.RemoveFilters).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).WhereIF(navObjectNameColumnInfo?.Navigat?.WhereSql != null, navObjectNameColumnInfo?.Navigat?.WhereSql).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString));
|
||||||
if (navList.HasValue())
|
if (navList.HasValue())
|
||||||
{
|
{
|
||||||
//var setValue = navList
|
var groupQuery =
|
||||||
// .Where(x => navColumn.PropertyInfo.GetValue(x).ObjToString() == listItemPkColumn.PropertyInfo.GetValue(item).ObjToString()).ToList();
|
(from l in list.Distinct()
|
||||||
var groupQuery = (from l in list.Distinct()
|
from n in navList
|
||||||
join n in navList
|
let lValue =
|
||||||
on listItemPkColumn.PropertyInfo.GetValue(l).ObjToString()
|
listItemPkColumn.PropertyInfo.GetValue(n).ObjToString()
|
||||||
equals navColumn.PropertyInfo.GetValue(n).ObjToString()
|
let nValues =
|
||||||
select new
|
((navColumn.PropertyInfo.GetValue(l) as IEnumerable)?.Cast<object>()??new List<object>())
|
||||||
{
|
where nValues != null && nValues.Select(x => x.ObjToString()).Contains(lValue)
|
||||||
l,
|
select new
|
||||||
n
|
{
|
||||||
}).GroupBy(it => it.l).ToList();
|
l,
|
||||||
|
n
|
||||||
|
})
|
||||||
|
.GroupBy(it => it.l)
|
||||||
|
.ToList();
|
||||||
foreach (var item in groupQuery)
|
foreach (var item in groupQuery)
|
||||||
{
|
{
|
||||||
var itemSelectList = item.Select(it => it.n);
|
var itemSelectList = item.Select(it => it.n);
|
||||||
|
Reference in New Issue
Block a user