如何使用 EFCore Linq 获取记录内的子嵌套列表

我有 3 个表 1.Books 2.PO 3.Books_PO。我想使用 books_po 引用表提取单个 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

当我需要 2 本书的列表时,我当前的查询仅返回一本书。如果我回来,.ToList()我会收到 2 条 PO 记录,但仍然是一本书。我很想知道我想做的事情是否可能?


ctx.books_po.Where(a => a.po.Id == 3).Include(b => b.Books).FirstorDefault();


白猪掌柜的
浏览 103回答 2
2回答

摇曳的蔷薇

我认为您正在寻找 GroupByvar 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)

翻翻过去那场雪

为什么不使用 Books dbContexts 而不是 book_po ?ctx.Books.Where(x => x.books_po.poId == 3).ToList();
打开App,查看更多内容
随时随地看视频慕课网APP