【发布时间】:2015-05-30 12:10:37
【问题描述】:
假设我有一个Repository 类,它有一个DbContext。在这个类中,我有一个方法:
public async Task<T> CreateAsync(T obj)
{
var o = _dbSet.Add(obj);
await _dbContext.SaveChangesAsync();
return o;
}
在Service 类中,我使用此方法创建对象:
public async Task<MyObject> Create()
{
return await _repository.CreateAsync(new MyObject());
}
最后在我的 api 控制器 MyObjectController 中,我像这样返回这个对象:
public async Task<IHttpActionResult> Get()
{
return Ok(await _service.Create());
}
我对所有这些 async 和 await 关键字感到困惑。我知道Task 是可以等待的。这是否意味着我可以从CreateAsync 返回Task 而无需在CreateAsync 或Create 中等待,然后最终在Get 中等待它?像示例中那样执行等待是否会对我的应用程序产生负面影响?
【问题讨论】:
标签: c# entity-framework asynchronous