これが私の問題です: 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」を呼び出すと、子エンティティの「挿入メソッド」が親エンティティの前に呼び出されます。そのため、外部キー制約により例外が発生します。ここのコードは単純化されています。実際のケースでは、submit changes を 2 回呼び出すことはできません (1 つは親エンティティの作成後、もう 1 つは子の作成後)。
サーバー側で挿入順序を制御するにはどうすればよいですか、または何が間違っていますか?
助けてくれてありがとう。