WCF数据服务:向数据库添加两个新对象,并在它们之间建立链接

时间:2011-08-15 22:30:16

标签: c# .net wcf linq wcf-data-services

我的数据库中有这两个表:

班级(*)< ----------(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

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

我必须将SaveChangesOption传递给service.SaveChanges()方法:

      service.SaveChanges(SaveChangesOptions.Batch);