接口IQueryable
和IQueryable<T>
是否异步?
我的意思是,假设以下代码:
void Method()
{
var customers = CustomerReposity.ToQueryable(); //The execution of query starts here.
DoSomething();
foreach (var customer in customers) // The foreach await to finish
customer.DoSomething();
}
我的自杀对吗?如果没有,什么是实现异步行为的正确形式?
也许...
async void Method()
{
var customers = CustomerReposity.ToQueryable().ToListAsync(); //The execution of query starts here.
DoSomething();
foreach (var customer in await customers) // The foreach await to finish
customer.DoSomething();
}
这是个好主意吗?
答案 0 :(得分:3)
否,df = pd.concat([df1, df2, df3]).sort_values('id').reset_index(drop=True)
list_ind = df.drop_duplicates(['name','tag']).index
df.loc[list_ind,'new'] = range(1,len(list_ind)+1)
df['new'] = df.sort_values(['tag','name'])['new'].ffill().astype(int)
和IQueryable
不是异步的,也不一定是异步的。这两个接口提供了从源中提取一些数据的方法,但是要由源提供异步支持。如果源将返回内存中的所有数据,则异步使用它是没有意义的。但是,如果源是从网络“流式传输”的,那么异步枚举可能是有意义的。
答案 1 :(得分:-1)
出于某种奇怪的原因,IQueryable<'T'>
异步方法依赖于实体框架。
using Microsoft.EntityFrameworkCore;
解决问题。