为什么不能使用实体框架6.0在父实体中保存子类对象

时间:2016-09-15 11:58:53

标签: .net entity-framework

我的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事件探查器来监视数据库,但无法跟踪“第三个”数据库。试图插入数据库。有没有人可以帮我解决这个问题?非常感谢!

0 个答案:

没有答案