Я прочитал несколько сообщений об этом исключении, но ни один из них, похоже, не объясняет ошибку при использовании правильного каскадирования.Учитывая следующую структуру, я сталкиваюсь с исключением на каскаде второго уровня.
public class ParentEntity
{
protected virtual IList<FirstChildEntity> InnerFirstChildren
{
get;
private set;
}
}
public class FirstChildEntity
{
protected virtual IList<SecondChildEntity> InnerSecondChildren
{
get;
private set;
}
}
public class SecondChildEntity
{
public virtual SomeProperty { get; protected set; }
}
И мое переопределение отображения (Свободно)
public sealed class ParentEntityMappingOverride : IAutoMappingOverride<ParentEntity>
{
public void Override(AutoMapping<ParentEntity> mapping)
{
mapping
.HasMany<FirstChildEntity>(Reveal.Member<ParentEntity>("InnerFirstChildren"))
.KeyColumn("ParentEntityId")
.Inverse()
.Cascade.AllDeleteOrphan();
}
}
public sealed class FirstChildEntityMappingOverride : IAutoMappingOverride<FirstChildEntity>
{
public void Override(AutoMapping<FirstChildEntity> mapping)
{
mapping
.HasMany<SecondChildEntity>(Reveal.Member<FirstChildEntity>("InnerSecondChildren"))
.KeyColumn("FirstChildEntityId")
.Inverse()
.Cascade.AllDeleteOrphan();
}
}
Блок кода, который вызывает исключение, добавляет новыйэкземпляры SecondChildEntity
в коллекцию InnerSecondChildren
объекта FirstChildEntity
.Затем я вызываю Save () из ParentEntity, который должен каскадно доходить до последней коллекции в иерархии.
Есть идеи?Заранее спасибо!