私はここで何かを見逃しているようです:
アプリケーション メソッドごとにセッションを使用し、遅延読み込みを使用するアプリケーションがあります。
セッション FlushMode.Commit を設定しましたが、トランザクションを開始してコミットすることはありませんが、NHibernate はダーティ オブジェクトを DB (SQLCe) に自動保存しているようです。
誰が私が間違っているのか教えてもらえますか?
私のコードの一部:
public Repository(ISessionProvider sessionProvider)
{
_sessionProvider = sessionProvider;
_session = _sessionProvider.OpenSession();
_session.FlushMode = FlushMode.Commit;
}
public IList<T> GetAll<T>() where T : class
{
var criteria = _session.CreateCriteria<T>();
var list = criteria.List<T>();
return list;
}