0

下面的查询使用 Z.EntityFramework.Plus.EF6 过滤子项。它的过滤并AssetXref正确包含实体,但结果不能包含Child.Parent实体关系

   var result = await _repository.GetQuery<Assets>()
                      .IncludeFilter(x => x.AssetsXRef
                                        .Where(y => y.Child.Perent.ParentID == parentID)
                                        .Select(y => y.Child.Perent)
                                    )
                     .Where(x => x.Active == true)
                     .ToListAsync();

我也试过

   var result = await _repository.GetQuery<Assets>()
                      .IncludeFilter(x => x.AssetsXRef
                                        .Where(y => y.Child.Perent.ParentID == parentID)                                        
                                    )
                     .Include(x=>x.AssetsXRef.Select(y=>y.Child.Parent))
                     .Where(x => x.Active == true)
                     .ToListAsync();
4

1 回答 1

0

IncludeFilter不兼容IncludeIncludeFilter即使没有过滤器也需要一路使用

此外,您需要始终对孩子使用完整的父过滤器

这是一个例子:

var result = await _repository.GetQuery<Assets>()
                     .IncludeFilter(x => x.AssetsXRef.Where(y => y.Child.Perent.ParentID == parentID))
                     // Might be SelectMany
                     .IncludeFilter(x => x.AssetsXRef.Where(y => y.Child.Perent.ParentID == parentID).Select(y=>y.Child.Parent))
                     .Where(x => x.Active == true)
                     .ToListAsync();
于 2019-09-27T10:47:43.860 回答