【发布时间】:2011-05-20 17:24:09
【问题描述】:
我使用 Entity Framework 4 基于我的(空)数据库创建了一个类模型,并按照 this tutorial 为每个类型继承设置了一个表,Student 和 Professor 继承了抽象 Person类。
一切正常,然后我继续创建Student 控制器,生成的用于创建学生的代码不起作用。我现在无法访问我的代码,所以我无法粘贴它,但Create 函数是这样的:
function create(Student student){
db.person.AddObject(student);
db.person.SaveChanges();
}
这给了我一个错误,说无法添加 Student,因为数据库中没有具有相应键的 Person。我对 asp.net 很陌生,但我相信数据库上下文在尝试插入学生表之前不会插入一个人。
很抱歉,我无法提供更多细节,例如数据库设计图片或实际代码,但这是我目前能做的最好的。
谢谢!
【问题讨论】:
-
发布代码,没有它只是猜测
-
@vittore 我知道这还不够,我希望我能提供更多信息,但我现在无法访问代码。尽管如此,我很确定我发布的摘录是我创建 Student 控制器时搭建的代码(我已经看了这么多小时,它已经在我的视网膜上燃烧了)
-
这个create函数是怎么调用的,
student是什么?是表单中的数据吗? -
创建 StudentController 时,它会生成重载的
Create方法,该方法通过 HTTPpost从表单接收Student对象。该视图有一个具有Student的所有属性的表单(继承的和特定的)。提交表单后,控制器使用此数据创建一个Student对象并将其传递给上面的create方法。希望这会有所帮助。
标签: c# asp.net-mvc entity-framework asp.net-mvc-3 inheritance