当我尝试使用“HasMany”时,不要使用cascade =“all-delete-orphan”错误更改对集合的引用

时间:2015-12-14 10:13:24

标签: c# nhibernate fluent-nhibernate

class Foo : Entity
{
    public virtual Iesi.Collections.Generic.ISet<FooBar> FooBars
    { 
       get; protected set; 
    }
}

class FooBar
{
    public virtual Foo Foo { get; set; }
}

class FooMap : ClassMap<Foo>
{
    public FooMap()
    {
        HasMany(x => x.FooBars)
            .KeyColumn("foo_id")
            .Inverse()
            .Cascade.AllDeleteOrphan();
    }
}

[TestFixture]
class <Some Unit Test class>
{
   [Test]
   public void <Some test name>()
   {
      var foo = new Foo();
      foo.FooBars.Add(new FooBar());

      <calling some method and asserting on that>
   }
}

Q值。当我尝试编写单元测试时面临以下错误(上面是我的代码结构)。有人可以帮我解决这个问题吗?

  

NHibernate.HibernateException:不要使用cascade =“all-delete-orphan”更改对集合的引用:在NHibernate.Engine.Collections.PrepareCollectionForUpdate(IPersistentCollection集合,CollectionEntry条目,EntityMode entityMode,ISessionFactoryImplementor工厂)      at NHibernate.Event.Default.FlushVisitor.ProcessCollection(Object collection,CollectionType type)      在NHibernate.Event.Default.AbstractVisitor.ProcessEntityPropertyValues(Object []值,IType []类型)      在NHibernate.Event.Default.AbstractFlushingEventListener.FlushEntities(FlushEvent事件)      在NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions(FlushEvent事件)      在NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent事件)      在NHibernate.Impl.SessionImpl.Flush()

0 个答案:

没有答案
相关问题