Ho un utente-ruolo molti-a-molti, specificato da questo estratto da una classe derivata EntityTypeConfiguration<Role>
che mi permette di specifiy schemi per singole tabelle, ad esempio:Come specificare uno schema per una tabella di relazioni molti-a-molti?
[Schema(SchemaNames.ParkPay)]
class WeekDayConfig : EntityTypeConfigurationWithSchema<WeekDay>
{
internal WeekDayConfig()
{
Ignore(t => t.IsDeleted);
Property(p => p.Name)
.IsRequired()
.HasMaxLength(20);
}
}
Ora, per Role
, la configurazione la classe contiene questo codice e la tabella risultante UserRole
viene creata nello schema 'dbo', non lo schema desiderato. Ciò è che il codice:
[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");
});
}
}
C'è qualcosa che posso fare, tranne lo script una modifica dello schema durante la fase di semina di inizializzazione, per avere tavolo UserRole
creata sotto lo schema del 'parkpay' e non il 'dbo' schema?
Hai provato questo? Sembra un sovraccarico di 'ToTable': http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables – rliu