c# - 如何使用 EFCore Linq 在记录中获取子嵌套列表
问题描述
我有 3 个表 1.Books 2.PO 3.Books_PO。我想使用 books_po ref 表提取单个 PO 记录,但我想要该记录中的书籍列表。
Books PO books_PO
ID Name ID ponumber poId bookId
1 book1 3 1234 3 2
2 book2 5 2323 3 3
3 book3
当我需要两本书的清单时,我当前的查询只带回一本书。如果我返回.ToList()
,我会得到 2 条 PO 记录,但仍然是一本书。我很想知道我想做的事情是可能的吗?
ctx.books_po.Where(a => a.po.Id == 3).Include(b => b.Books).FirstorDefault();
解决方案
我认为您正在寻找 GroupBy
var singleRecord = ctx.books_po
.Where(a => a.po.Id == 3)
.Include(b => b.Books)
.GroupBy(a => a.po, a => a.Books).FirstOrDefault();
您将获得包含两个字段的单条记录 singleRecord.Key 和 singleRecord.ToList() 将是该 po 下的所有 bookId (== 3)
推荐阅读
- mysql - 基于按位运算条件的列总和
- python - 使用 pytesseract python 从扫描的 PDF 中提取表格到 csv
- android-sdcard - 如何获取 Oreo sdCard 路径?
- elasticsearch - Elasticsearch 使用过滤器和通配符构建产品查询
- python - 如何可视化来自 DataFrame 的数据序列
- visual-studio - 如何在 Visual Studo 2017 中自动添加扩展?
- reactjs - 我无法删除 react-final-form-array 的一行,并且它重置无法正常工作
- apache-camel - Camel - ActiveMQ 对空队列做出反应
- spring-boot - Spring Cloud Gateway 负载均衡类型
- java - 某些图像无法在适配器上加载(滑翔)