繁体   English   中英

Asp.net身份DbContext

[英]Asp.net Identity DbContext

我有以下设置:

  1. 我通过创建自己的类并从Identity类继承来定制了IdentityUser和IdentityRole类

  2. 我也有基于实体框架的领域模型(通过edmx-Designer)

由于我想通过使用常规域模型中的类来扩展IdentityUser,因此我将数据上下文的TT更改为<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : IdentityDbContext<ApplicationUser>

在生成的文件之外,我已经从ApplicationDataContext创建了一个部分类,如下所示:

public partial class ApplicationDbContext
{

    protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("User", "portal").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<ApplicationUser>().ToTable("User", "portal").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles", "portal");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins", "portal");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims", "portal");
        modelBuilder.Entity<UserStoreAssignment>().ToTable("UserStoreAssignment", "portal");
        modelBuilder.Entity<ApplicationRole>().ToTable("Roles", "portal");
    }

    new public DbSet<ApplicationRole> Roles { get; set; }
}

UserStoreAssignment类指向位于域模型中的类Store 一切都可以成功构建。 但是,一旦我开始从应用程序内部访问ApplicationUser ,就会收到以下错误消息:

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

有谁知道是什么问题?

听起来您正在尝试将ApplicationUser映射到表,但实际上并没有通过Designer将ApplicationUser添加到上下文中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM