Asp.net、Entity Framework、および Windows Workflow Foundation を使用するアプリケーションを作成しましたが、すべてが期待どおりに動作します。
私のasp.netページは、ページからワークフローに渡されたエンティティを実行および更新するワークフローを開始する必要があります。すべて正常に動作します: Unit Of Work パターンを使用して asp.net と WWF の間でコンテキストを共有し、ワークフロー中にエンティティが正常に更新されました...別のエンティティへの参照としてエンティティでモデル化されたフィールドを除きます。
この場合を想定します。メイン エンティティは、Status と呼ばれる別のエンティティへの外部キーである Status と呼ばれるプロパティを持つ Item と呼ばれます。アイテムを作成するときは、次のような一般的な構文で作成するだけです
Item i = new Item();
次に、次のように Status エンティティへの参照を作成します。
i.StatusReference.EntityKey = new System.Data.EntityKey("myEntities.StatusSet", "idStatus", State);
State は、Workflow ステップでハードコードされた整数値です。
このエンティティ (アイテム 1) を更新しようとするたびに、次の手順に従います。
Item i = (from item in ctx.ItemsSet where item.idItem == itemID select item).FirstOrDefault();
次に、エンティティがコンテキストにアタッチされます。EntityState は UNCHANGED です
b) 前のようにステータス参照を更新します。
i.StatusReference.EntityKey = new System.Data.EntityKey("myEntities.StatusSet", "idStatus", State);
c) ctx.SaveChanges(); のようなコンテキストで変更を保存します。
vs2008 デバッガーを使用すると、更新されたエンティティが表示され、変更が保存されたときに表示されます...すべてのプロパティが変更されていることがわかります (modifiedDate、itemName、およびその他の小道具) が、エンティティ参照はまだ元のものを指しています。
誰か助けてくれませんか?!