我的Model和DBcontext代码如下:
public class Person
{
public string Name { get; set;}
}
public class Student:Person
{
public string Property { get; set;}
}
public class TestContext: DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Person> Persons { get; set; }
....
// I create two separated table Student, Person in DB.
}
public void run()
{
using(var db = new TestContext())
{
// First
var person = new Person { Name = "Brenda"};
db.Person.Add(person);
db.SaveChanges();// it works.
// Second
var student = new Student { Name = "Jason",Property = "Middle" };
db.Students.Add(student);
db.SaveChanges(); // it works.
// Third
var person1 = (Person)student;
db.Persons.Add(person1);
db.SaveChanges(); // it does not work! why?
}
}
为什么我无法在父实体中保存子类对象?我使用SQL事件探查器来监视数据库,但无法跟踪“第三个”数据库。试图插入数据库。有没有人可以帮我解决这个问题?非常感谢!