问题描述
- Enity framework 向一个有外键的table插入数据
-
Enity framework 怎么向一个有外键的table插入数据。
比如一个student表:
Id(主键)
Name
ClassId(外键,Class表的主键)一个Class表:
Id(主键,student的外键)
Name当我用ef(版本3.5)插入一条student记录时,例如 (1,小明,一班)注:“一班”这个数据存在于class表中。
这时ef会先去class表中插入“一班”这个数据,从而出现主键不能重复的异常,student也没法插入。如果Class表中没有“一班”这个数据
那么一切会正常执行。插入函数,我用的是ef DBcontext派生类的AddToXXX()(XXX为表名)方法
之后调用savechanges保存 就会出现class表主键冲突的问题请问这个问题怎么解决!
代码:
student.Classes = classes; student.Colleges = college; student.Degrees = degree; student.GraduateYears = year; student.Specials = special; ae.AddToStudents(student); 以上class college degree year special student 全部是model(根据数据库自己生成的)并且class college degree year special的主键全部是student的外键ae是DBcontext的对象
解决方案
贴出你的代码,你重复插入主键了。
你可以用导航属性,比如
db.ClassTable.Students.Add(new Student() { ... });
db.SaveChanges();
时间: 2024-12-23 12:30:52