2009-09-03 10 views
0

に私は現在、Entity Frameworkのを使用していますし、この問題に実行しています:彼らは異なるObjectContextオブジェクトに添付されているので取り外す対象エンティティ

2つのオブジェクト間の関係を定義することはできません。ページの読み込み順序については

、私はこれを経由してdropdownlistsを満たしています:

using (DatabaseEntities db = new DatabaseEntities()) 
     { 
      MyDictionary = new Dictionary<Guid, Person>(); 
      var List= from emp in db.Set select emp; 
      ... 

      foreach (Employee emp in List) 
      { 
       MyDictionary.Add(emp.id, emp); 

他の機能は、このページを閉じて、別のものを開くには、「次へ」ボタンです。

private void StoreInfo() 
    { 
     Person theLead= MyDictionary[new Guid(this.Lead.SelectedValue)]; 
     .... 
     this.Selected.Lead= theLead; 

私はページ内の検証を続行することができますので、どのように私は最初のコンテキストから一人一人を取り外し行くのです

ここでセッション状態に

public Dictionary<Guid,Person> MyDictionary 
    { 
     get 
     { 
      return Session["MyDictionary"] as Dictionary<Guid,Person>; 
     } 
     set 
     { 
      Session["MyDictionary"] = value; 
     } 
    } 
を辞書を保存するのですか?私は

MyDictionary.Add(emp.id, emp); 

db.Detach(emp) 

を試してみましたが、それはうまくいきませんでした。

答えて

2

エンティティ全体をセッションに格納する代わりに、IDを使用して次のページで取得するだけです。ウェブのステートレス性を抱くことは、あなたの正気を維持するのに役立ちます。

エンティティ全体を格納する必要がある場合は、デタッチを保持しますが、新しいオペレーションを開始するときは、新しいObjectContextにアタッチすることを忘れないでください。

+0

私は、この1つが追加されている他のエンティティを切り離していないので、競合するコンテキストが得られました – dangerisgo

関連する問題