我使用的是Entity Framework 7 Beta 4,需要映射到现有数据库。
这是一个简单的例子:
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时,出现此错误:
表达&#39; [100001]。人们&#39;传递给Include运算符无法绑定。
答案 0 :(得分:3)
我们仍在继续进行继承。 (参见问题#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; }
}