0

这是我的问题:我正在使用 Silverlight+ WCF RIA + EntityFramework 和域数据源。我在客户端插入一个父实体,然后是一个子实体(父实体可以有很多子实体),如下所示:

   Parent p = new Parent();
   p.PropertyA = "MyTest";

   if (!this.domainContext.Parents.Contains<Parent>(p))
   this.domainContext.Parents.Add(p);

   Child c = new Child();
   c.PropertyOfC = "Togodo";

   if (!this.domainContext.Childs.Contains<Child>(c))
      this.domainContext.Childs.Add(c);

   c.parent = p;
   p.Child.Add(c);

   // Submit update RAISE ERROR
   domainContext.SubmitChanges(submitOp =>
   {
       // Declare error
       Exception error = null;

       // Set error or result
       if (submitOp.HasError)
       {
            error = submitOp.Error;
       }

       // Invoke completion callback
       if (completed != null)
                completed(error);
       }, null);
   }

当我在服务器端调用“submitChanges”时,子实体的“插入方法”在父实体之前调用。因此由于外键约束而发生异常。这里的代码被简化了。在实际情况下,我不能两次调用提交更改(一次在创建父实体后,一次在子实体创建后)

如何控制服务器端的插入顺序,或者我做错了什么?

谢谢你的帮助。

4

1 回答 1

0

感谢您的帮助,但我发现了问题。

实际上,我是通过存储过程插入父实体,并且没有正确配置 Id 的“输出结果绑定”。因此,在插入数据库后,我的实体模型上的父 ID 没有正确更新。

于 2012-07-07T07:30:13.263 回答