简体   繁体   English

如何使用 EFCore Linq 在记录中获取子嵌套列表

[英]How to get a child nested list within a record using EFCore Linq

I have 3 Tables 1.Books 2.PO 3.Books_PO.我有 3 个表 1.Books 2.PO 3.Books_PO。 I would like to pull a single PO record using books_po ref table but I want a list of books within that record.我想使用 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

My current query only brings back one book when I need a list of 2 books.当我需要 2 本书的列表时,我当前的查询仅带回一本书。 If I return .ToList() I get 2 records for the PO but still one book.如果我返回.ToList()我会得到 2 条 PO 记录,但仍然是一本书。 I am curious to know what I'm trying to do is possible?我很想知道我正在尝试做的是可能的吗?

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

I think you are looking for GroupBy我认为您正在寻找 GroupBy

var singleRecord = ctx.books_po
.Where(a => a.po.Id == 3)
.Include(b => b.Books)
.GroupBy(a => a.po, a => a.Books).FirstOrDefault();

You will get a single record with two fields singleRecord.Key and singleRecord.ToList() will be all the bookIds under that po (== 3)您将获得一个包含两个字段的单个记录 singleRecord.Key 和 singleRecord.ToList() 将是该 po (== 3) 下的所有 bookIds

为什么不使用 Books dbContexts 而不是 book_po ?

ctx.Books.Where(x => x.books_po.poId == 3).ToList();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM