Entity framework 如何将生成的多对多关系表强制为正确的模式?

Entity framework 如何将生成的多对多关系表强制为正确的模式?,entity-framework,ef-code-first,Entity Framework,Ef Code First,我有表parkpay.User和parkpay.Role。EF Code首先自动生成第三个表,将多对多关系中的两个表链接起来,但它会生成dbo.UserRole。如何使表'parkpay.UserRole'?使用EntityTypeConfiguration配置多对多映射 public class User { public long Id { get; set; } public string UserName { get; set; } public string P

我有表
parkpay.User
parkpay.Role
。EF Code首先自动生成第三个表,将多对多关系中的两个表链接起来,但它会生成dbo.UserRole。如何使表'parkpay.UserRole'?

使用EntityTypeConfiguration配置多对多映射

public class User
{
    public long Id { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public virtual ICollection<Role> Roles { get; set; }
}

public class Role
{
    public long Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<User> Users { get; set; }
}

public class UserMapping : EntityTypeConfiguration<User>
{
    public UserMapping()
    {
        ToTable("User", "parkpay");
        HasKey(e => e.Id).Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
        HasMany(e => e.Roles).WithMany(e => e.Users).Map(m => m.ToTable("UserRole", "parkpay").MapLeftKey("RoleId").MapRightKey("UserId"));
    }
}

public class RoleMapping : EntityTypeConfiguration<Role>
{
    public RoleMapping()
    {
        ToTable("Role", "parkpay");
        HasKey(e => e.Id).Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }
}

public class DatabaseContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new UserMapping());
        modelBuilder.Configurations.Add(new RoleMapping());
        base.OnModelCreating(modelBuilder);
    }
}
公共类用户
{
公共长Id{get;set;}
公共字符串用户名{get;set;}
公共字符串密码{get;set;}
公共虚拟ICollection角色{get;set;}
}
公共阶级角色
{
公共长Id{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection用户{get;set;}
}
公共类用户映射:EntityTypeConfiguration
{
公共用户映射()
{
ToTable(“用户”、“支付宝”);
HasKey(e=>e.Id).Property(e=>e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
有许多(e=>e.Roles)。有许多(e=>e.Users)。Map(m=>m.ToTable(“UserRole”,“parkpay”)。MapLeftKey(“RoleId”)。MapRightKey(“UserId”);
}
}
公共类角色映射:EntityTypeConfiguration
{
公共角色映射()
{
ToTable(“角色”、“公园薪酬”);
HasKey(e=>e.Id).Property(e=>e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
公共类DatabaseContext:DbContext
{
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
添加(newusermapping());
添加(新角色映射());
基于模型创建(modelBuilder);
}
}