Cur*_*ive 7 .net c# entity-framework entity-framework-core .net-core
我知道我可以更深入地使用ThenIncludeEager Loading加载相关数据,如下例所示
//Eager Loading
var publisher = await _context.Publishers
.Include(pub => pub.Books)
.ThenInclude(book => book.Sales)
.Include(pub => pub.Users)
.Where(pub => pub.PubId == id)
.FirstOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)
如何在显式加载中编写相同的查询?Sales在下面的情况下,如何在不循环阅读书籍的情况下加载数据?
//Explicit Loading
var publisher = await _context.Publishers
.SingleAsync(pub => pub.PubId == id);
_context.Entry(publisher)
.Collection(pub => pub.Books)
.Load();
_context.Entry(publisher)
.Collection(pub => pub.Users)
.Load();
Run Code Online (Sandbox Code Playgroud)
Iva*_*oev 14
Query()方法是你的朋友。
您还可以获得表示导航属性内容的 LINQ 查询。
这允许您执行诸如在相关实体上运行聚合运算符之类的操作,而无需将它们加载到内存中。
例子...
您还可以过滤哪些相关实体加载到内存中。
例子...
他们忘记提到的是,您也可以将它用于显式加载数据的Include/ThenInclude相关数据。
例如
_context.Entry(publisher)
.Collection(pub => pub.Books)
.Query() // <--
.Include(book => book.Sales) // <--
.Load();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |