2013-06-14 5 views
6

ich eine Benutzer-Rollen Viele-zu-viele-Beziehung habe, die von diesem Auszug aus einer EntityTypeConfiguration<Role> abgeleiteten Klasse angegeben, die mir Schemata für einzelne Tabellen specifiy ermöglicht, zB:Wie kann ein Schema für eine Viele-zu-Viele-Beziehungstabelle angegeben werden?

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

nun für Role, die Konfiguration Klasse enthält diesen Code und die resultierende Tabelle UserRole wird unter dem Schema 'dbo' erstellt, nicht mein gewünschtes Schema. Dies ist der 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"); 
        }); 
    } 
} 

Gibt es etwas, was ich tun kann, außer Skript während der Einfahrphase der Initialisierung eine Schemaänderung, hat Tabelle UserRole unter dem ‚ParkPay‘ Schema erstellt und nicht das ‚dbo‘ Schema?

+2

Sie dies versuchen Haben? Sieht aus wie eine Überladung von 'ToTable': http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables – rliu

Antwort

10

Ich sehe nicht, warum dies nicht funktionieren würde:

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

Ich auch nicht, und es tut . Danke, ich habe diese Überlastung vermisst. – ProfK

+0

Gibt es einen DataAnnotations-Weg? – RoLYroLLs