我的数据库中有这两个表:
班级(*)< ----------(1)老师 ------- --------
教师有很多课程,而课程只属于一位教师。
我在我的wcf数据服务客户端中执行此操作:
var teacher = new Teacher(1, "John");
var class1 = new Class
{
teacherId=teacher1.Id,
teacher=teacher1
};
teacher1.Classes.Add(class1);
service.AddObject("Classes", class1);
service.AddObject("Teachers", teacher1);
service.AddLink(teacher1, "Classes", class1);
service.SetLink(class1, "Teacher", teacher);
service.SaveChanges();
执行时出现以下异常:
“INSERT语句与FOREIGN KEY约束冲突\”Teachers_Classes \“。冲突发生在数据库\”MyDatabase \“,table \”dbo.Teachers \“,列'TeacherId'。\ r \ n该声明包含已被终止。“
这是表Classes:
中定义的约束 ALTER TABLE [dbo].[Classes] WITH CHECK ADD CONSTRAINT
[Teachers_Classes] FOREIGN KEY([Teachers_TeacherId])
REFERENCES [dbo].[Teachers] ([TeacherID])
GO
答案 0 :(得分:1)
我找到了解决方案:
我必须将SaveChangesOption传递给service.SaveChanges()方法:
service.SaveChanges(SaveChangesOptions.Batch);