0

現在のセッションにロードされたすべての永続オブジェクトが必要です。

セッションに関連付けられた永続的なコンテキストキャッシュについて知っています。現在のセッションにロードされたすべてのオブジェクトの辞書が含まれています。IPersistenceContext キャッシュにロードされているすべてのオブジェクトを知る方法を誰か教えてもらえますか?

// NHibernate セッション ファクトリを作成します

    var sessionFactory = CreateSessionFactory();
    using (var session = sessionFactory.OpenSession())
    {
            Employee emp;

            // populate the database
            using (var transaction = session.BeginTransaction())
            {
               emp = session.Query<Employee>().Where(x => x.Name == "Bargin Basin").FirstOrDefault();
               var entries = session.GetSessionImplementation().PersistenceContext.EntityEntries;
               foreach (var item in entries)
               {
                    var entityEntry = entries[item];
                    //I want the objects of my type like..
                    //Employee persistedEmp = entityEntry as Employee;                        
               }
          }
    }
4

1 に答える 1

1

PersistenceContext があることを既に知っている場合は非常に簡単なので、質問を正しく理解していない可能性がありますが、次のようになります。

ICollection entities = _session
    .GetSessionImplementation()
    .PersistenceContext
    .EntityEntries
    .Keys;
于 2013-07-18T05:14:47.583 に答える