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」を呼び出すと、子エンティティの「挿入メソッド」が親エンティティの前に呼び出されます。そのため、外部キー制約により例外が発生します。ここのコードは単純化されています。実際のケースでは、submit changes を 2 回呼び出すことはできません (1 つは親エンティティの作成後、もう 1 つは子の作成後)。

サーバー側で挿入順序を制御するにはどうすればよいですか、または何が間違っていますか?

助けてくれてありがとう。

4

1 に答える 1

0

ご協力ありがとうございますが、問題が見つかりました。

実際、ストアド プロシージャを介して親エンティティを挿入していましたが、ID の「出力結果バインディング」を正しく構成していません。そのため、データベースに挿入した後、エンティティ モデルで親 Id が正しく更新されませんでした。

于 2012-07-07T07:30:13.263 に答える