1

いくつかのクラスがあるとしましょう:

public class BaseModel
{
    [Key]
    public int Id { get; set; }
}

public class Person : BaseModel
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public DateTime DateOfBirth { get; set; }

    public string Email { get; set; }
}

public class Employee : Person
{
    public string Position { get; set; }

    public decimal Wage { get; set; }

    public PaymentType PaymentType { get; set; }

    public virtual Company Company { get; set; }
}

現在、私はこれを持っています:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Employee>().HasRequired(e => e.PaymentType);
    modelBuilder.Entity<Employee>().Map(t =>
        {
            t.MapInheritedProperties();
            t.ToTable("Employees");
        });

    modelBuilder.Entity<Company>().HasMany(c => c.Employees).WithRequired(e => e.Company).Map(t => t.MapKey("Company_Id"));

}

Person と Employee の 2 つのテーブルを取得MapInheritedProperties()しましたが、Person プロパティを Employee テーブルに追加した結果が気に入りません。

基本クラス(Person)を外部キーにするにはどうすればよいですか?

4

1 に答える 1