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