实体类型ApplicationUser不是当前上下文的模型的一部分。 []

时间:2017-09-21 03:55:51

标签: asp.net asp.net-identity

要在现有的MVC项目中添加ASP.NET Identity 2.0,我有Customize(只是表的名称)Identity Table如下所示,

enter image description here

并遵循此link以DB首先实现.NET身份。

运行应用程序时,没有错误。

但是当我要注册时,会收到此错误,

enter image description here

请帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

真正的问题是,您尝试添加DBContext中与DBContext实例创建的UserManager不同的用户实例(由ApplicationUser使用)。

假设你有一个User个实例:

var newUser = new User
{
    UserName = model.Email,
    Email = model.Email
}

然后你应该以适当的方式立即插入User实例(即在ApplicationUser的同一个实例中):

try
{
    var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
    user.UserInfo = newUser;

    var result = await UserManager.CreateAsync(user, model.Password);
    if (result.Succeeded)
    {
        // do something
    }
}
catch (Exception e)
{
    // throw exception here
}

注意:如果您为单个数据库使用多个连接字符串,请仅保留一个Entity Framework连接字符串,并丢弃指向同一数据库的其他字符串。

如果您的ApplicationUserManager课程继承了UserManager<ApplicationUser>,请确保您拥有database context set up to use ApplicationUser context

var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<NameOfYourDatabaseContext>()));

相关问题:

The entity type ApplicationUser is not part of the model for the current context Asp.Net MVC

MVC 5 UserManager: The entity type ApplicationUser is not part of the model for the current context