Сделать 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)