0
这是我的问题:我使用Silverlight + WCF RIA + EntityFramework和域数据源。我'在客户端插入父实体,然后子实体(家长可以有很多孩子)是这样的:WCF RIA更改集提交订单。为什么在父实体之前插入子实体?
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”,对serveur侧,子元素的“插入方法”在父元素之前被调用。所以由于外键约束而发生异常。 这里的代码被简化了。在真实情况下,我无法两次调用提交更改(一个创建父实体后,一个创建子实体后)
如何控制服务器端的插入顺序或我做错了什么?
感谢您的任何帮助。
是否用'[Composition]'注解了父'子集合?你能分享定义实体的代码吗? – 2012-07-06 14:46:10