2012-03-19 8 views
0

私のコントローラには、エンティティを取得するために使用しているパラメータであるintがあります。 このエンティティには、自分のエンティティと一緒に読み込む必要があるList Collectionがあります。 私はsession.GetでFetchメソッドにアクセスすることができないので、どのようにして取得するのか分かりません。 私の見解で、私はそれが何のセッションまたはセッションが閉じられなかったエラーが発生し、スローentity.Collectionのように私のコレクションにアクセスしようとしたときにここでセッションで遅延ロードエラーが発生しました.Get

は私のコードです

あなたのエンティティは、コレクションのプロパティを持ってい
public ActionResult Details(int id) 
{ 
    MyDomain.Property data = null; 
    using (//open session) 
    { 
     using (//using transaction) 
     { 
      data = session.Get<MyDomain.Property>(id);      
      //I need to load Photo() collection. 
      transaction.Commit(); 
     } 
    } 
    return PartialView("DetailsPartial", data);   
} 

答えて

1

プロキシ(実際のコレクションではない)でセッションを閉じるときに遅延ロードを使用することはできませんので、実際のコレクションオブジェクトを取得する必要があります。 クエリで取得する必要があります。

Session.QueryOver<Entity>() 
.Where(entity => entity.Id == id) 
.Fetch(entity => entity.CollectionProperty).Eager 
.SingleOrDefault<Entity>(); 
関連する問題