Sto usando Entity Framework 5 code first
. Nel mio database ho 2 tabelle, AvailPayPeriods
e AvailPayPeriodsWeekly
. Entrambi hanno lo stesso aspetto:Come configurare più insiemi di oggetti per tipo nel codice Entity Framework prima
Period datetime not null
Poiché queste 2 tabelle sono identiche in natura decido di creare la seguente classe di rappresentare o 1 del 2:
public class PayPeriod : IEntity
{
public int Id { get; set; }
public DateTime Period { get; set; }
}
sto lottando per configurare la 2. ho la seguente nel mio database classe del contesto:
public DbSet<PayPeriod> WeeklyPayPeriods { get; set; }
public DbSet<PayPeriod> MonthlyPayPeriods { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new WeeklyPayPeriodConfiguration());
// Haven't yet created the configuration file for monthly pay periods
}
mio WeeklyPayPeriodConfiguration
classe:
class WeeklyPayPeriodConfiguration : EntityTypeConfiguration<PayPeriod>
{
internal WeeklyPayPeriodConfiguration()
{
this.ToTable("AvailPayPeriodsWeekly");
}
}
Quando chiamo il mio repository per ottenere indietro i periodi di paga settimanale ottengo il seguente errore:
Multiple object sets per type are not supported. The object sets 'WeeklyPayPeriods' and 'MonthlyPayPeriods' can both contain instances of type 'ePaySlips.DomainModel.Entities.PayPeriod'.
Come faccio a mappare il 2 alle rispettive tabelle?
Devo creare piuttosto per separare le classi chiamate WeeklyPayPeriod
e MonthlyPayPeriod
?
È possibile contrassegnare la classe PayPeriod come astratta in modo da evitare il campo Discriminator, consultare Tabella per classe Concrete (TPC): http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code -first.aspx – Adi