【发布时间】:2014-01-19 23:58:08
【问题描述】:
我的服务中有这个方法:
public virtual async Task<User> FindByIdAsync(string userId)
{
this.ThrowIfDisposed();
if (userId == null)
{
throw new ArgumentNullException("userId");
}
return await this.repository.FindByIdAsync(userId);
}
然后在视图中我有这个代码:
using (var service = new UserService(new CompanyService(), User.Identity.GetUserId()))
{
var user = service.FindByIdAsync(id);
}
但用户是Task,而不是User。我尝试将 await 添加到服务调用中,但我不能使用 await,除非当前方法是 async。 如何访问 User 类?
【问题讨论】:
-
使当前方法异步并添加等待。
-
你能显示
service.FindByIdAsync(id)的代码吗? -
'async' 方法就像僵尸:它们传播。异步方法调用者必须是异步的。
-
大声笑 :) 很好的描述
标签: c# entity-framework asynchronous