6 votes

Comment spécifier un schéma pour une table de relation plusieurs à plusieurs ?

J'ai une relation Utilisateur-Rôle de plusieurs à plusieurs, spécifiée par l'extrait suivant d'un fichier EntityTypeConfiguration<Role> qui me permet de spécifier des schémas pour des tables individuelles, par exemple :

[Schema(SchemaNames.ParkPay)]
class WeekDayConfig : EntityTypeConfigurationWithSchema<WeekDay>
{
    internal WeekDayConfig()
    {
        Ignore(t => t.IsDeleted);
        Property(p => p.Name)
            .IsRequired()
            .HasMaxLength(20);
    }
}

Maintenant, pour Role la classe de configuration contient ce code, et le tableau résultant UserRole est créé sous le schéma 'dbo', et non sous le schéma que je souhaite. Voici ce code :

[Schema(SchemaNames.ParkPay)]
internal class RoleConfig : EntityTypeConfigurationWithSchema<Role>
{
    public RoleConfig()
    {
        HasMany(t => t.Users)
            .WithMany(t => t.Roles)
            .Map(m =>
                     {
                         m.ToTable("UserRole");                            
                         m.MapLeftKey("RoleId");
                         m.MapRightKey("UserId");
                     });
    }
}

Y a-t-il quelque chose que je puisse faire, à part script un changement de schéma pendant la phase d'ensemencement de l'initialisation, pour que la table UserRole créé sous le schéma 'parkpay' et non sous le schéma 'dbo' ?

10voto

SOfanatic Points 2135

Je ne vois pas pourquoi cela ne fonctionnerait pas :

public RoleConfig()
{
    HasMany(t => t.Users)
    .WithMany(t => t.Roles)
    .Map(m =>
    {
        m.ToTable("UserRole","parkpay");                            
        m.MapLeftKey("RoleId");
        m.MapRightKey("UserId");
    });
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X