【发布时间】:2023-01-07 00:02:17
【问题描述】:
我正在尝试将 .ToLookup() 方法与 EF Core 查询一起使用,想知道使用它时的最佳做法是什么,我应该先将查询缓冲到列表中,还是直接在 IQueryable 上调用 .ToLookup()?
var lookup = DbContext.Foo.Where(f => f.Id > 1).ToLookup(f => f.Id);
//vs:
var lookup = (await DbContext.Foo.Where(f => f.Id > 1).ToListAsync(cancellation)).ToLookup(f => f.Id);
我主要担心的是 ToListAsync 方法将异步执行查询,而直接 .ToLookup 调用看起来就像它会阻塞,直到返回查询结果。
然而,正如@Tim 提到的那样,ToListAsync 方法最终将在内存中创建 2 个集合。
谢谢
【问题讨论】:
标签: c# .net entity-framework-core