ほとんど再起動されない Windows サービスで NHibernate.ISession 実装の 1 つのインスタンスを作成することに害はありますか? 私は ISession をよく理解していませんが、私が理解していることから、ISession 実装のインスタンスは、変更をコミットするとすぐに破棄できるトランザクションへの参照を保持しています
using (ITransaction trans = MyISession.BeginTransaction())
{
...
trans.Commit();
}
コードサンプルをオンラインで確認すると、autofac を使用した ISession の実装はほとんどの場合、InstancePerLifetimeScope() として設定されています。これは事実上、インスタンスが作成されたコンテキスト (HTTP リクエストなど) から出るとすぐにインスタンスが破棄されることを意味します。
長時間実行されている Windows プロセスの autofac で nhibernate を単一のインスタンスとして登録することの害について (もしあれば) 教えてもらえますか?
builder.Register(c => new MyIsessionFactory.OpenSession()).As<ISession>().SingleInstance();