我好像错过了一些东西:
我有一个应用程序,它使用每个应用程序方法的会话并使用延迟加载。
我已经设置了会话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;
}
答案 0 :(得分:0)
在我的UI中创建一个脏对象的时候,似乎有另一个线程正在刷新同一个会话,我想这只是我应用程序中的一个错误。
现在很好用,因为我需要Lazy功能,所以仍然使用每个应用程序的会话。