Entity Framework 7 베타 4의 유형별 상속 표

asp.net-core entity-framework entity-framework-core

문제

Entity Framework 7 Beta 4를 사용하고 있으며 기존 데이터베이스에 매핑해야합니다.

데이터베이스는이 기사와 비슷한 유형별 테이블 계층 구조를 사용합니다 ( http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-inheritance-with-the). -entity-framework-in-asp-net-mvc-application )

다음은 간단한 예입니다.

public abstract class Person
{
    // SQL Table: Person
    // SQL Columns: PersonId, Name
    public long PersonId { get; set; }
    public string Name { get; set; }
    // This column would contain 'STUDENT' or 'PARENT'
    public string PersonType { get; set; }
}

public class Student : Person
{
    // SQL Table: Person_Student
    // SQL Columns: PersonId, GPA
    public decimal GPA { get; set; }
}

public class Parent : Person
{
    // SQL Table: Person_Parent
    // SQL Columns: PersonID, EmergencyContactNumber
    public string EmergencyContactNumber { get; set; }
}

public class PersonTestDb : DbContext
{
    public DbSet<Person> People { get; set; }
}

DbSet을 쿼리 할 때이 오류가 발생합니다.

'[100001] .People'표현식은 Include 연산자에 전달 될 수 없습니다.

수락 된 답변

우리는 여전히 상속을 위해 노력하고 있습니다. (이슈 # 247 참조) TPH / STI는 부분적으로 구현되었지만 TPT는 구현되지 않았습니다. 지금은 테이블과 클래스를 직접 매핑 할 수 있습니다. 같은 것 :

class Person
{
    // Null when Parent
    public Student Student { get; set; }

    // Null when Student
    public Parent Parent { get; set; }
}

class Student
{
    public int PersonId { get; set; }
    public Person Person { get; set; }
}

class Parent
{
    public int PersonId { get; set; }
    public Person Person { get; set; }
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.