【发布时间】:2016-07-13 17:23:09
【问题描述】:
在我的项目中,我使用 Identity。 Identity 的默认设置是在数据库中使用它们的名称创建表。我想把这些名字改成我的名字。
我正在使用 Fluent Api 来配置创建 Identity 的表,例如:
public class UserConfiguration : EntityTypeConfiguration<User>
{
public string TableName
{
get { return "Users"; }
}
public UserConfiguration()
{
this.ToTable(TableName);
HasKey(u => u.ProviderId);
}
}
public class UserClaimsConfiguration : EntityTypeConfiguration<IdentityUserClaim>
{
public string TableName
{
get { return "UserClaims"; }
}
public UserClaimsConfiguration()
{
this.ToTable(TableName);
HasKey(u => u.Id);
}
}
在上下文中,我将上面的配置添加到 DB:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserConfiguration());
modelBuilder.Configurations.Add(new RolesConfiguration());
modelBuilder.Configurations.Add(new UserClaimsConfiguration());
modelBuilder.Configurations.Add(new UserLoginsConfiguration());
modelBuilder.Configurations.Add(new UserRoleConfiguration());
}
之后我进行了迁移和更新数据库 –TargetMigration: RenameTablesInDB。
但我发现了一个错误:
找不到对象“dbo.AspNetUserClaims”,因为它不存在或您没有权限。
【问题讨论】: