我有一个带有 ThreadStaticSessionContext 的多线程 NHibernate 应用程序。
我为每个线程绑定(bind)一个新 session 。在退出线程之前,我提交了事务,我得到了
enumerator was modified
at NHibernate.Util.SequencedHashMap.OrderedEnumerator.MoveNext()
at NHibernate.Util.IdentityMap.get_EntryList()
at NHibernate.Util.IdentityMap.ConcurrentEntries(IDictionary map)
at NHibernate.Event.Default.AbstractFlushingEventListener.PrepareEntityFlushes(IEventSource session)
at NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions(FlushEvent event)
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
at ...
我一点头绪都没有...
最佳答案
当您在枚举集合时添加/删除集合时,通常会引发此异常(如在 foreach
语句中)。
关于c# - NHibernate 异常枚举器已修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101252/