Entity Framework 5 code first
kullanıyorum. Veritabanımda 2 tablo, AvailPayPeriods
ve AvailPayPeriodsWeekly
var. Her ikisi de aynı görünür: Ben yapılandırmak için mücadele ediyorumVarlık Çerçeve kodunda ilk başına birden fazla nesne kümesi nasıl yapılandırılır?
public class PayPeriod : IEntity
{
public int Id { get; set; }
public DateTime Period { get; set; }
}
: Bu 2 tablolar doğada aynıdır Çünkü
Period datetime not null
Ya 1 2 temsilen aşağıdaki sınıf oluşturmaya karar 2. benim veritabanı bağlam sınıfında şu var:
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
}
benim WeeklyPayPeriodConfiguration
sınıfı:
class WeeklyPayPeriodConfiguration : EntityTypeConfiguration<PayPeriod>
{
internal WeeklyPayPeriodConfiguration()
{
this.ToTable("AvailPayPeriodsWeekly");
}
}
ben aşağıdaki hatayı alıyorum haftalık ödeme dönemleri geri almak için benim depo diyoruz:
Multiple object sets per type are not supported. The object sets 'WeeklyPayPeriods' and 'MonthlyPayPeriods' can both contain instances of type 'ePaySlips.DomainModel.Entities.PayPeriod'.
nasıl kendi tablolara 2 harita oluşturuyorsunuz?
WeeklyPayPeriod
ve MonthlyPayPeriod
adlı sınıfları ayırmayı tercih etmeli miyim?
public class MonthlyPayPeriod : PayPeriod
{
}
public class WeeklyPayPeriod : PayPeriod
{
}
ve sizin DBContext değişiklik:
PayPeriod sınıfını özet olarak işaretlemek isteyebilirsiniz, böylece Diskriminator alanını kullanamazsınız, bkz. Tablo Başı Beton sınıfı (TPC): http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code -first.aspx – Adi