Приведенный ниже запрос использует Z.EntityFramework.Plus.EF6 для фильтрации дочерних элементов. Его фильтрация и правильное AssetXref
сущности 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();
IncludeFilter
не совместим с Include
. Вы должны использовать IncludeFilter
полностью, даже если нет фильтра
Кроме того, вам всегда нужно использовать полный родительский фильтр для дочерних элементов.
Вот пример:
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();