NHibernate で奇妙なエラーが発生しました。ISession がスレッド間で共有されているというエラーが発生していましたが、次のような独自の ADO.NET 接続を提供することでこれを解決しました。
IDbConnection connection = new SqlConnection(ApplicationConfiguration.ConnectionString);
connection.Open();
ISession session = _sessionFactory.OpenSession(connection);
session.FlushMode = FlushMode.Commit;
return session;
私のアプリケーションは動作するようになりましたが、コレクションを持つすべてのオブジェクトは、コレクションなしでデータベースに永続化されています。たとえば、車にタイヤのリストがあるとします。次に、車を作成し、データベースに既に存在するタイヤに基づいてタイヤのリストを生成します。車のオブジェクトを保存すると、リストではなく車だけが保存されます!
私が間違っていることについて何か助けはありますか?私は NHibernate 2.0 を使用しており、Session.Flush() と Transaction.Commit() を呼び出しています。
乾杯。