public bool UpdateOrder(List<object> insert, List<object> update) { ISession iSession = _factory.OpenSession(); ITransaction IT = iSession.BeginTransaction(); try { if (insert != null && insert.Count > 0) { object o; long l; foreach (var item in insert) { o = iSession.Save(item); if (o == null) { IT.Rollback(); return false; } else { l = long.Parse(o.ToString()); if (l <= 0) { IT.Rollback(); return false; } } } } if (update != null && update.Count > 0) { foreach (var item in update) { iSession.Update(item); } } IT.Commit(); return true; } catch (Exception e) { IT.Rollback(); DalError(e); return false; } finally { iSession.Flush(); iSession.Close(); } }
上面是项目中的一段代码,其中用到了NHibernate的事务处理,但是使用过一段时间后发现,有一定的几率出现插入数据成功,但是更新却失败的现象,我实在是找不出问题所在了,求助于各位。
请确保insert为null.