entity-framework - 如何使用 Z.EntityFramework 过滤和包含子项
问题描述
下面的查询使用 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();
解决方案
与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();
推荐阅读
- sql - SQL / SSRS 表达式
- javascript - Linebreak Javascript InnerText
- macos - 在 macOS Catalina 上安装 Haskell-gi 并在 Haskell 中创建 GUI
- javascript - Apollo 客户端 3 片段 React
- html - 如何在引导程序 4 中构建卡片标题以保持三个元素连续,截断中间元素中的文本以获取较小的屏幕尺寸?
- javascript - 如何将输入字段的宽度调整为 html 中的最大长度?
- linux - 如何将 linux 命令行输出保存到 .txt 文件?
- python - 将数据框的(抓取)列表写入单个 excel 表
- javascript - 如何禁用拆分成更漂亮的新行?
- python - 使用 map lambda 销毁小部件 tkinter