2011-07-05 136 views

回答

0

我已经检查的NHibernate 3.1.0来源,似乎调用ISession.Close()应导致ITransaction.Dispose()的默认实现。但是,尽管如此,在现有应用程序中使用而不是导致明确的交易commitrollback - 使用NHibernate Profiler进行检查。

我不认为这是一个好主意,让交易仅依赖于ISession.Close(),因为它可能导致不可预知的行为。如果某人将适应该特定方法并包含ISession.SaveOrUpdate ......您的实体将不会持续下去。

UPDATE

Sql Server角度来看,我认为这取决于你的交易isolation level,但我敢肯定,你迟早会遇到锁或超时。请参阅本sql-server具体问题:

What happens to an uncommitted transaction when the connection is closed?

+0

我不关心滥用。我关心的是数据库。数据库将有交易没有结束(我认为是这样)。 –

相关问题