今年12月の初めより前に、私たちの現在のコードは問題なく機能しました。最近、このエラーが発生した複数のインスタンスがありました。私は、現在のコードで何か問題があるのを見つけることに問題があります。 global.asaxで1つのSessionFactoryを作成しています。トランザクションのバインドとバインド解除。コードは次のとおりです。nHibernateエラーコレクションを2つの開いているセッションに関連付ける不正な試み
私たちのコードがsession.Update(エンティティ)を実行すると、非常に時折、不正な操作エラーが発生します。この問題を防ぐためにできることは他にありますか?
ちょうどそれが私たちのセッションファクトリの設定からのものであることをオフのチャンスに、ここでセッションファクトリを作成するための我々のコードは次のとおりです。
sessionFactory = Fluently.Configure()
.Database(OracleClientConfiguration.Oracle10.ConnectionString(System.Configuration.ConfigurationManager.ConnectionStrings["nHibernateConnection"].ToString()).ShowSql())
.ExposeConfiguration(cfg => cfg.SetProperty(NHibernate.Cfg.Environment.CurrentSessionContextClass, "web"))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<MyObjectMap>())
.ExposeConfiguration(cfg =>
{
UpdateEventListener updateListener = new UpdateEventListener();
cfg.EventListeners.PreUpdateEventListeners =
new IPreUpdateEventListener[] { updateListener };
cfg.EventListeners.PostLoadEventListeners =
new IPostLoadEventListener[] { updateListener };
cfg.EventListeners.PostUpdateEventListeners =
new IPostUpdateEventListener[] { updateListener };
cfg.EventListeners.PreInsertEventListeners =
new IPreInsertEventListener[] { updateListener };
cfg.EventListeners.PostInsertEventListeners =
new IPostInsertEventListener[] { updateListener };
})
.BuildSessionFactory();