复合关系中的NHibernate Stackoverflow异常

复合关系中的NHibernate Stackoverflow异常,nhibernate,transactions,fluent-nhibernate,stack-overflow,Nhibernate,Transactions,Fluent Nhibernate,Stack Overflow,当试图从集合中删除复合对象时(但仅当我将其包装到事务中时),会出现stackoverflow异常。但是,在会话中获取对象并将其删除(而不是在集合中)以及保存父对象是可行的 代码如下所示: using (var session = sessionProvider.GetSession()) { using (var transaction = session.BeginTransaction()) {

当试图从集合中删除复合对象时(但仅当我将其包装到事务中时),会出现stackoverflow异常。但是,在会话中获取对象并将其删除(而不是在集合中)以及保存父对象是可行的

代码如下所示:

using (var session = sessionProvider.GetSession())
        {
            using (var transaction = session.BeginTransaction())
            {
                var products = session.Query<MyObject>().Select(x => x.MyObjectId > 0).ToList();

                //Would fail 
                var variant = session.Query<MyObject>().FirstOrDefault(x => x.Name == "some name that exists");
                var parent = MyObject.Parent;

                parent.RemoveMyObject(variant);
                session.Save(parent);

                //Doesn't fail
                //session.Delete(variant);

                transaction.Commit();
            }
            session.Flush();
        }
            HasMany(x => x.MyObject).AsSet().Cascade.AllDeleteOrphan().Inverse().KeyColumn("MyObjectId").BatchSize(2000);
        References(x => x.MyObject).Column("MyObjectId");
我该怎么做才能解决这个问题?它应该在两方面都起作用。正如前面所说,只有在有交易的情况下才是这样。这两种方法都可以在没有事务的情况下工作

致意 莫顿