大家好,我正在尝试从标准的 AspNet 表继承。
我的意图是使用 Guid 作为主键并使用一些属性扩展基本的 AspNetUser。此外,我想重命名表名。
现在是这样的:
public class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>
{
public User() { }
public User(string userName)
{
this.UserName = userName;
}
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User, Guid> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
我的 DbContext 看起来像这样:
public class CustomDBContext : IdentityDbContext<User, Role, Guid, UserLogin, UserRole, UserClaim>
{
public static CustomDBContext Create()
{
return new CustomDBContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityRole<Guid, UserRole>>().ToTable("Roles");
modelBuilder.Entity<IdentityUserLogin<Guid>>().ToTable("UserLogins");
modelBuilder.Entity<IdentityUserClaim<Guid>>().ToTable("UserClaims");
modelBuilder.Entity<IdentityUserRole<Guid>>().ToTable("UserRoles");
modelBuilder.Entity<IdentityUser<Guid, UserLogin, UserRole, UserClaim>>().ToTable("Users");
}
}
不幸的是,当我试图生成我的迁移时。我得到那个错误:
未映射类型“Microsoft.AspNet.Identity.EntityFramework.IdentityRole`2[System.Guid,Easy1WebAPIData.Models.UserRole]”。使用 Ignore 方法或 NotMappedAttribute 数据注释检查该类型是否被显式排除。验证该类型是否被定义为一个类,不是原始的或泛型的,并且不是从 EntityObject 继承的。
有任何想法吗 ?此致!