复合关系中的NHibernate Stackoverflow异常

时间:2014-01-21 13:52:05

标签: nhibernate transactions fluent-nhibernate stack-overflow

尝试从集合中删除复合对象时会出现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");

我该怎么做才能解决这个问题?它应该以两种方式工作。正如所说的那样,只有当有交易时才会这样。这两种方法都没有交易。

祝你好运 的Morten

0 个答案:

没有答案