将我的ApplicationsDbContext与IdentityDbContext结合使用没有使用MVC 5定义的键

dot*_*gis 2 entity-framework asp.net-mvc-5 asp.net-identity

我将现有的DBContext与MVC 5中的新IdentityDbContext结合起来.我设法将两个上下文组合在一起,但是当我运行我的应用程序并且正在创建模型时,我收到了以下错误消息:

Context.IdentityUserLogin :: EntityType'IdentityUserLogin'没有定义键.定义此EntityType的键.Context.IdentityUserRole :: EntityType'IdentityUserRole'没有定义键.定义此EntityType的键.

dot*_*gis 5

我做了一些阅读后研究了如何修复它.

创建以下两个配置类(随着数据库的增长和表之间的关系增加,在OnModelCreating方法中保持干净)

public class IdentityUserLoginConfiguration : EntityTypeConfiguration<IdentityUserLogin>
{

    public IdentityUserLoginConfiguration()
    {
        HasKey(iul => iul.UserId);
    }

}

public class IdentityUserRoleConfiguration : EntityTypeConfiguration<IdentityUserRole>
{

    public IdentityUserRoleConfiguration()
    {
        HasKey(iur => iur.RoleId);
    }

}
Run Code Online (Sandbox Code Playgroud)

在Applications DbContext中的OnModelCreating方法中,将上面概述的两个配置添加到模型中:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

        modelBuilder.Configurations.Add(new IdentityUserLoginConfiguration());
        modelBuilder.Configurations.Add(new IdentityUserRoleConfiguration());

    }
Run Code Online (Sandbox Code Playgroud)

现在,这应该在创建模型时摆脱错误方法.它对我有用.