我有一个ASP.NET Core 2.0应用程序,我试图将用户附加到模型:
var user = _userManager.FindByIdAsync(Model.Author);
var promotion = new Promotion()
{
Title = Model.Title,
User = user //error here,
Created = DateTime.Now
};
此代码的问题在于我无法将user
分配给promotion.User
,因为user
是异步操作的结果。我不想使用FindByIdAsync
,但由于某种原因,我无法找到FindById
。
答案 0 :(得分:3)
UserManager
仅包含异步API,FindByIdAsync
实际返回Task<User>
而不是User
。因此,您还需要使代码异步,并使用FindByIdAsync
,如下所示:
var user = await _userManager.FindByIdAsync(Model.Author); // will return the User
只有在不可能使代码保持同步的情况下,例如通过调用Result
的{{1}}属性,这将导致您的线程阻塞,直到结果可用
Task