请在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; (这里基本上是第一行)弹出上述错误信息。
提前致谢。
答案 0 :(得分:2)
更改
var user = _userManager.FindByEmailAsync("john.smith@hotmail.com");
到
var user = await _userManager.FindByEmailAsync("john.smith@hotmail.com");
Async
末尾的FindByEmailAsync
表示它可能会返回Task<RepoUser>
。当然,不要接受我的话,看看它的回归。
调用该方法返回任务。等待异步值返回随任务返回的值。