C# 模型创建重复表的实体框架
我使用ASP.NET Identity 2,EF代码首先创建5个表 dbo.AspNetRole dbo.AspNetUsers dbo.AspNetUsersClaim dbo.AspNetUsersLogin dbo.AspNetUsersRole 我需要更改名称,所以我使用了这段代码C# 模型创建重复表的实体框架,c#,entity-framework,C#,Entity Framework,我使用ASP.NET Identity 2,EF代码首先创建5个表 dbo.AspNetRole dbo.AspNetUsers dbo.AspNetUsersClaim dbo.AspNetUsersLogin dbo.AspNetUsersRole 我需要更改名称,所以我使用了这段代码 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBui
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("RepricerUsers", "miportal");
modelBuilder.Entity<IdentityUserClaim>().ToTable("RepricerUsersClaim", "miportal");
modelBuilder.Entity<IdentityUserLogin>().ToTable("RepricerUsersLogin", "miportal");
modelBuilder.Entity<IdentityUserRole>().ToTable("RepricerUsersRole", "miportal");
modelBuilder.Entity<IdentityRole>().ToTable("RepricerRole", "miportal");
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder){
基于模型创建(modelBuilder);
modelBuilder.Entity().ToTable(“ReperterUsers”、“miportal”);
modelBuilder.Entity().ToTable(“replicerUsersLaim”、“miportal”);
modelBuilder.Entity().ToTable(“repliceruserslogin”、“miportal”);
modelBuilder.Entity().ToTable(“replicerUsersRole”、“miportal”);
modelBuilder.Entity().ToTable(“RepercerRole”、“miportal”);
}
它可以工作,但是从IdentityUser
创建的表是重复的,因此我找到了dbo.AspNetUsers
和miportal.reperceuser
为什么这张桌子是重复的?我遗漏了什么吗?我也有类似的问题。您不能直接更改aspIdentity表名,因此应该使用从IdentityUser类继承的类来执行此操作。以下是我在我的一个项目中所做的操作。您可以将类名更改为任何您想要的名称。
型号
public class User : IdentityUser
{
public string Address { get; set;}//it can be any propery or you can leave class empty
}
配置类
public sealed class UserConfig : EntityTypeConfiguration<User>
{
public UserConfig()
{
ToTable("RepricerUsers", "miportal");
}
}
你的答案是对的,我最终得到了一个稍微不同的解决方案。我添加了
modelBuilder.Entity()
其中ApplicationUser
继承自IdentityUser
,因此两者都在同一个表上写入。您的方法很好。出于某些原因,我需要将ApplicationUser更改为User。没有区别,两者都解决了问题
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserConfig());
}