を使用してEntity Framework 5 code first
います。私のデータベースには、2 つのテーブルAvailPayPeriods
とAvailPayPeriodsWeekly
. どちらも同じように見えます:
Period datetime not null
これら 2 つのテーブルは本質的に同一であるため、2 つのうちのいずれかを表す次のクラスを作成することにしました。
public class PayPeriod : IEntity
{
public int Id { get; set; }
public DateTime Period { get; set; }
}
2 の設定に苦労しています。データベース コンテキスト クラスには次のものがあります。
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
}
私WeeklyPayPeriodConfiguration
のクラス:
class WeeklyPayPeriodConfiguration : EntityTypeConfiguration<PayPeriod>
{
internal WeeklyPayPeriodConfiguration()
{
this.ToTable("AvailPayPeriodsWeekly");
}
}
毎週の支払い期間を取り戻すためにリポジトリを呼び出すと、次のエラーが表示されます。
Multiple object sets per type are not supported. The object sets 'WeeklyPayPeriods' and 'MonthlyPayPeriods' can both contain instances of type 'ePaySlips.DomainModel.Entities.PayPeriod'.
2 をそれぞれのテーブルにマップするにはどうすればよいですか?
と呼ばれるクラスを分離するために作成する必要がWeeklyPayPeriod
ありMonthlyPayPeriod
ますか?