隐式类型转换 - mvc应用程序

时间:2017-12-18 13:34:45

标签: c# asp.net-mvc asynchronous type-conversion

请在C sharp寻找有关类型转换的一些帮助。我正在使用MVC和Entity Framework核心创建一个应用程序。现在我正在实现身份但我得到了错误"无法隐式转换类型' GymBuddy.Data.Entities.RepoUser' to' System.Threading.Task.Task'当我创建一个异步方法。 我已经阅读了一些关于类型转换的文章,但我仍然不清楚这个问题。不一定寻找答案,但可能有一些方向如何进一步探索这个问题。提前谢谢。

首先,我创建了一个带有几个简单属性的RepoUser类。

using Microsoft.AspNetCore.Identity;
namespace GymBuddy.Data.Entities
{
public class RepoUser : IdentityUser
    {
    public string FirstName { get; set; }
    public string SecondName { get; set; }
    }
}

其次我创建了一个类,它将来会为数据库设定种子,但也会检查用户是否存在。

using GymBuddy.Data.Entities;
using Microsoft.AspNetCore.Identity;
using System.Threading.Tasks;

namespace GymBuddy.Data
{
public class GymBuddySeeder
{   
    private readonly UserManager<RepoUser> _userManager;
    public GymBuddySeeder(UserManager<RepoUser> userManager)
    {   
        _userManager = userManager;
    }
    public async Task Seed()
    {
        var user = _userManager.FindByEmailAsync("john.smith@hotmail.com");
        if (user == null)
        {
            user = new RepoUser()

我输入&#34; RepoUser&#34; (这里基本上是第一行)弹出上述错误信息。

提前致谢。

1 个答案:

答案 0 :(得分:2)

更改

var user = _userManager.FindByEmailAsync("john.smith@hotmail.com");

var user = await _userManager.FindByEmailAsync("john.smith@hotmail.com");

Async末尾的FindByEmailAsync表示它可能会返回Task<RepoUser>。当然,不要接受我的话,看看它的回归。

调用该方法返回任务。等待异步值返回随任务返回的值。