2012-03-21 6 views
1

ここでは、休止状態のセッションでロードとエビクトに問題があります。プロキシを初期化できませんでした - セッションセッションはありません.LOADとEVICT

  Firmy fir = new Firmy(); 
     fir.ClearData(fir); 
     var yol = fir.Load<Firmy>(6); 
     Response.Write("<br/><br/><br/> TEST get"); 
     Response.Write(yol.NazwaFirmy); 
     Response.Write("<br/><br/><br/> TEST EVI"); 
     fir.ClearData(yol); 
     Response.Write(yol.NazwaFirmy); 

、ここでそれを呼び出す

 public virtual void ClearData(T obj) 
    { 

     using (ISession ses = SessionManager.OpenSession()) 
     { 
      ses.Evict(obj); 
     } 

    } 

     public virtual T Load<T>(object id) 
    { 
     using (ISession ses = SessionManager.OpenSession()) 
     { 
      return (T)ses.Load(typeof(T), id); 
     } 
    } 

は、セッションmenagerが

public class SessionManager 
{ 
    #region Class Member Declarations 
    private static readonly ISessionFactory _sessionFactory; 
    private static readonly Configuration _configuration; 
    #endregion 
    static SessionManager() 
    { 
     _configuration = new Configuration(); 
     _configuration.Configure(); 
     _configuration.AddAssembly(typeof(SessionManager).Assembly); 
     _sessionFactory = _configuration.BuildSessionFactory(); 
    } 


    public static ISession OpenSession() 
    { 
     return _sessionFactory.OpenSession(); 
    } 
    #region Class Property Declarations 

    public static ISessionFactory SessionFactory 
    { 
     get { return _sessionFactory; } 
    } 
    #endregion 
} 

である私は、ロード機能とモミのいくつかのデータをロードするようにしたいし、その後clearDataメソッドとの明確なデータがどのようにIDKのこれは何らかの副作用に基づいていましたか?

答えて

1

どこでエラーが発生しますか?

OKではない物事のカップル:あなたはどのNHibernateのセッションに関連していないオブジェクトの追い出し(1回目)呼んでいる

  • (あなたはそれを作成しました)。エビクトはセッションからオブジェクトを切り離すためのものですが、そのセッションでオブジェクトをロードした場合にのみ意味があります。

  • すべてのオペアレーションでセッションを作成しますが、これは推奨される方法ではありません。 1つのセッションでオブジェクトをロードした後、別のセッションでオブジェクトを追い出ししようとしますが、これは不可能です。

+0

あなたは私のセッションmenagerを変更する方法を教えてもらえますか? エラーは常にコールのエビクトまたはロード時に発生します。 – Endiss

+0

セッションを取得するには、メソッドを変更する必要があります。すでに作成されていない場合にのみ新しいものを作成します。セッションを閉じるメソッドも必要です。私はあなたの[ここ](http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-1-2nd-Ed)からセッションマネージャを使用することをお勧めします –

+0

またはあなたが助けることができる私の事例に書くのですか? – Endiss

関連する問題