ASP.NET Core,FindByID在哪里?

时间:2018-02-16 08:54:34

标签: entity-framework asp.net-core

我有一个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

1 个答案:

答案 0 :(得分:3)

UserManager仅包含异步API,FindByIdAsync实际返回Task<User>而不是User。因此,您还需要使代码异步,并使用FindByIdAsync,如下所示:

var user = await _userManager.FindByIdAsync(Model.Author); // will return the User

只有在不可能使代码保持同步的情况下,例如通过调用Result的{​​{1}}属性,这将导致您的线程阻塞,直到结果可用

Task