C# EF与特定scheam的多对多关系

C# EF与特定scheam的多对多关系,c#,sql,entity-framework,C#,Sql,Entity Framework,我想在DB中为一些实体创建一个特定的模式。 “角色”和“系统键”有多对多的关系,主题都在“ACL”模式中 公共类角色 { 公共长Id{get;set;} 公共字符串标题{get;set;} //导航道具 公共虚拟ICollection系统密钥{get;set;} } 及 公共类系统密钥 { 公钥 { Roles=newhashset(); } 公共长Id{get;set;} 公共字符串ActionName{get;set;} 公共字符串控制器名称{get;set;} //导航道具 公共ICol

我想在DB中为一些实体创建一个特定的模式。 “角色”和“系统键”有多对多的关系,主题都在“ACL”模式中

公共类角色
{
公共长Id{get;set;}
公共字符串标题{get;set;}
//导航道具
公共虚拟ICollection系统密钥{get;set;}
}

公共类系统密钥
{
公钥
{
Roles=newhashset();
}
公共长Id{get;set;}
公共字符串ActionName{get;set;}
公共字符串控制器名称{get;set;}
//导航道具
公共ICollection角色{get;set;}
}
在“OnModelCreating”中,我定义:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Role>().ToTable("Role", "ACL");
        modelBuilder.Entity<SystemKey>().ToTable("SystemKey", "ACL");
    }
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().ToTable(“角色”、“ACL”);
modelBuilder.Entity().ToTable(“SystemKey”、“ACL”);
}
}
但是,当DB生成时,我看到了在ACL模式中生成的角色和系统键,以及在dbo模式中创建的连接表(SystemKeyRole)。
如何强制SystemKeyRole(连接表)在“ACL”模式中生成?

您可以通过添加如下配置来实现:

modelBuilder.Entity<Role>()
    .HasMany(p => p.SystemKeys)
    .WithMany(p => p.Roles)
    .Map(p => p.ToTable("SystemKeyRole", "ACL"));
modelBuilder.Entity()
.HasMany(p=>p.SystemKeys)
.WithMany(p=>p.Roles)
.Map(p=>p.ToTable(“SystemKeyRole”、“ACL”);
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Role>().ToTable("Role", "ACL");
        modelBuilder.Entity<SystemKey>().ToTable("SystemKey", "ACL");
    }
}
modelBuilder.Entity<Role>()
    .HasMany(p => p.SystemKeys)
    .WithMany(p => p.Roles)
    .Map(p => p.ToTable("SystemKeyRole", "ACL"));