Сделать NHibernate перезаписать данные в коллекции

Допустим, у меня есть класс:

public class Entity
{
  ...
  public IEnumerable<Cousin> Cousins { get; set; }
}

... и я наметил это...

public class EntityMap : ClassMap<Entity>
{
  public EntityMap()
  {
    ...
    HasMany(x => x.Cousins).Cascade.AllDeleteOrphan();
  }
}

Кузен не имеет собственного хранилища (по крайней мере, пока). Я не хочу делать все сбережения через Entity и ее хранилище.

Я уже сохранил список кузенов, поэтому у сущности есть предметы в кузенах.

В следующий раз, когда я захочу спасти Entity, у него могут появиться новые кузены. Поэтому я хочу, чтобы существующие кузены исчезли и освободили место для новой коллекции кузенов.

Я пытаюсь сделать это, но я сталкиваюсь с этим сообщением об ошибке:

A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: Cousins

Как я могу сделать так, чтобы NHibernate перезаписывал кузенов каждый раз, когда я сохраняю Entity? Также, если это плохая практика - так и скажи.

1 ответ

Решение

Похоже, вы меняете ссылку на коллекцию, я имею в виду сделать что-то вроде x.Cousings = new List<Cousin>()

ты должен сделать x.Clear() а затем добавьте каждый элемент с x.Add(someCousin)

Другие вопросы по тегам