我想在DB中为某些实体创建特定的架构。 “Role”和“SystemKey”具有多对多关系,主题都在“ACL”模式中。
public class Role
{
public long Id { get; set; }
public string Title { get; set; }
//Navigation prop
public virtual ICollection<SystemKey> SystemKeys { get; set; }
}
和
public class SystemKey
{
public SystemKey()
{
Roles = new HashSet<Role>();
}
public long Id { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
//Navigation prop
public ICollection<Role> Roles { get; set; }
}
并在“OnModelCreating”中定义:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Role>().ToTable("Role", "ACL");
modelBuilder.Entity<SystemKey>().ToTable("SystemKey", "ACL");
}
}
但是,当生成数据库时,我看到在ACL模式中生成的角色和系统密钥以及在dbo模式中创建的联结表(SystemKeyRole)。 我如何强制SystemKeyRole(联结表)在“ACL”模式中生成?
答案 0 :(得分:2)
您可以通过添加如下配置来实现:
modelBuilder.Entity<Role>()
.HasMany(p => p.SystemKeys)
.WithMany(p => p.Roles)
.Map(p => p.ToTable("SystemKeyRole", "ACL"));