日期:2014-05-20  浏览次数:20870 次

Linq 多表插入

三张表  T_AskAndAnswer  T_XEStudent   T_XETeacher   
T_XEStudent   T_XETeacher 这两张表都有一个外键 GroupID 关联T_AskAndAnswer的主键 GroupID 
请问 Linq 中 如果我要插入一个新的 T_AskAndAnswer记录
我程序代码这样子写 会有错误  原因是t1 t2  s1 s2 都是从数据库表中读出来的 在插入新的组newGroup时 context.SubmitChanges();会要求数据库向T_XETeacher插入t1,t2 ;向T_XEStudent插入s1, s2 由于 主键冲突会导致context.SubmitChanges();失败

T_XETeacher t1 = repository.GetTeacherByName("T1");
T_XETeacher t1 = repository.GetTeacherByName("T2");
T_XEStudent s1 = repository.GetStudentByName("S1");
T_XEStudent s2 = repository.GetStudentByName("S1");
T_AskAndAnswer newGroup  = new T_AskAndAnswer();
newGroup.GroupId = 0;
newGroup.GroupName = "Group1";
newGroup.T_XETeachers.Add(t1);
newGroup.T_XETeachers.Add(t2);
newGroup.T_XEStudents.Add(s1);
newGroup.T_XEStudents.Add(s2);
AskAndAnswerTable.InsertOnSubmit(newGroup);
context.SubmitChanges();

数据库表设计如图所示所示
其实context.SubmitChanges()提交更改如果做
T_AskAndAnswer表的插入newGroup 和
 T_XETeacher的t1,t2的修改(GroupId字段的修改)
及T_XEStudent的s1,s2的修改(GroupId字段的修改) 那么就能实现我的功能

------解决方案--------------------
图呢。
------解决方案--------------------
图传不上去 插入图片功能好像不能上传本地主机上的图片
------解决方案--------------------
T_XEStudent s1 = repository.GetStudentByName("S1");
T_XEStudent s2 = repository.GetStudentByName("S1");

问题修正一下
T_XEStudent s1 = repository.GetStudentByName("S1");
T_XEStudent s2 = repository.GetStudentByName("S2");

程序运行异常依旧是主键重复