3

我做了一个 Reveres 代码 Eng 内部,首先使用 MYSQL DB 的 EF 电动工具生成代码,我可以很好地读取表。当我尝试保存任何东西时,我在下面得到异常。我没有设置此字段,我的解决方案中也没有此字段名称的任何内容。

            ProjectContext db = new ProjectContext();
            Person person = new Person();
            person.UpdatedAt = DateTime.Now;
            person.UserId = 1;
            person.PersonName = "test";
            db.Persones.Add(person);

            db.SaveChanges();

{"Unknown column 'Discriminator' in 'field list'"}

编辑 我注意到我有另一个类继承了这个类

公共课学生:人{

}

当我删除该继承时,它起作用了。但有人知道为什么吗?有任何想法吗?

4

1 回答 1

4

问题是当您有一个继承自另一个的类时,会自动添加此字段。使用此字段以便 EF 可以知道女巫记录代表学生,女巫记录只是人。

soadyp提到的这篇文章更好地解释了这一点。

默认情况下,使用 codefirst 创建的模型使用 TPH。

于 2013-02-26T06:54:21.283 回答