Jos*_*mil 3 c# entity-framework-core
我正在尝试执行包含 WHERE 作为异步函数的查询。就像使用该FirstAsync操作一样,但没有,WhereAsync所以我想知道是否有一些解决方法。
我有一个ApplicationRepository具有功能的对象GetEntitiesAsync,我尝试了以下方法:
public async Task<IEnumerable<TEntity>> GetEntitiesAsync<TEntity>(Func<TEntity, bool> selector) where TEntity : class =>
await _context.Set<TEntity>().Where(selector).AsQueryable().ToArrayAsync();
Run Code Online (Sandbox Code Playgroud)
然而,这行代码会抛出异常:
System.InvalidOperationException: The source IQueryable doesn't implement IAsyncEnumerable<OneStopApp.Models.CustomForm>. Only sources that implement IAsyncEnumerable can be used for Entity Framework asynchronous operations.
Run Code Online (Sandbox Code Playgroud)
有一个ToListAsync方法可以异步调用来获取数据。
var list = await db.Accounts.Where(x => true).ToListAsync();
Run Code Online (Sandbox Code Playgroud)
获取数据需要花费大量时间,因此异步不在Where方法上,而是在获取数据的方法上,例如ToArrayAsync或FirstAsync。
| 归档时间: |
|
| 查看次数: |
6468 次 |
| 最近记录: |