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");
程序运行异常依旧是主键重复