Ich verwende Entity Framework 5 code first
. In meiner Datenbank habe ich 2 Tabellen, AvailPayPeriods
und AvailPayPeriodsWeekly
. Sie sehen beide gleich:Wie mehrere Objektmengen pro Typ in Entity Framework Code zuerst konfiguriert werden
Period datetime not null
Da diese zwei Tabellen identisch sind in der Natur Ich entscheide, die folgende Klasse erstellen zu repräsentieren entweder 1 der 2:
public class PayPeriod : IEntity
{
public int Id { get; set; }
public DateTime Period { get; set; }
}
Ich kämpfe die konfigurieren 2. ich habe folgende in meiner Datenbank Kontextklasse:
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
}
Meine WeeklyPayPeriodConfiguration
Klasse:
class WeeklyPayPeriodConfiguration : EntityTypeConfiguration<PayPeriod>
{
internal WeeklyPayPeriodConfiguration()
{
this.ToTable("AvailPayPeriodsWeekly");
}
}
Als ich mein Repository nenne sie die wöchentlichen Zahlungszeiträume, um wieder ich die folgende Fehlermeldung erhalten:
Multiple object sets per type are not supported. The object sets 'WeeklyPayPeriods' and 'MonthlyPayPeriods' can both contain instances of type 'ePaySlips.DomainModel.Entities.PayPeriod'.
Wie kann ich die 2 zu ihren jeweiligen Tabellen ordne?
Soll ich lieber separate Klassen namens WeeklyPayPeriod
und MonthlyPayPeriod
erstellen?
Sie möchten vielleicht die Klasse PayPeriod als abstrakt markieren, so dass Sie das Diskriminator-Feld vermeiden, siehe Tabelle pro Concrete-Klasse (TPC): http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code -first.aspx – Adi