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()