Отображение nhibernate: на коллекцию с cascade = «all-delete-orphan» больше не ссылались

У меня есть некоторые пробники с моими беглыми отображениями. У меня есть сущность с дочерней коллекцией сущностей, например, Event и EventItems.

Если я установил для моего каскадного сопоставления коллекции значение AllDeleteOrphan, при сохранении нового объекта в БД я получаю следующую ошибку: NHibernate.HibernateException: Коллекция с каскадом = "все-сирота удаления» больше не ссылался на экземпляр объекта-владельца: Core.Event.EventItems

Если я установил каскад на Все это работает нормально? Ниже приведены мои классы и файлы сопоставления:

 public class EventMap : ClassMap
{
    public EventMap()
    {
        Id(x => x.Id, "Id")
            .UnsavedValue("00000000-0000-0000-0000-000000000000")
            .GeneratedBy.GuidComb();

        Map(x => x.Name);
        HasMany(x => x.EventItems)
            .Inverse()
            .KeyColumn("EventId")
            .AsBag()
            .Cascade.AllDeleteOrphan();
    }
}

  public class EventItemMap : SubclassMap
{
    public EventItemMap()
    {
         Id(x => x.Id, "Id")
            .UnsavedValue("00000000-0000-0000-0000-000000000000")
            .GeneratedBy.GuidComb();
        References(x => x.Event, "EventId");
    }
}



public class Event : EntityBase
{
    private IList _EventItems;

    protected Event()
    {
        InitMembers();
    }

    public Event(string name)
        : this()
    {
        Name = name;
    }

    private void InitMembers()
    {
        _EventItems = new List();
    }

    public virtual EventItem CreateEventItem(string name)
    {
        EventItem eventItem = new EventItem(this, name);
        _EventItems.Add(eventItem);
        return eventItem;
    }

    public virtual string Name { get; private set; }
    public virtual IList EventItems
    {
        get
        {
            return _EventItems.ToList().AsReadOnly();
        }
        protected set
        {
            _EventItems = value;
        }
    }
}

    public class EventItem : EntityBase
{
    protected EventItem()
    {
    }

    public EventItem(Event @event, string name):base(name)
    {
        Event = @event;
    }

    public virtual Event Event { get; private set; }
}

Довольно тупо здесь. Любые советы с благодарностью.

Чев

Ответы на вопрос(3)

Ваш ответ на вопрос