я есть х которых объект типа ObjectX, который имеет свойство ListOfObjectYs тотВ NHibernate, не в состоянии обновить список дочерних объектов
List<objectY>
NHibernate отображение выглядит следующим образом:
public ObjectXMap()
{
HasMany(x => x.ListOfObjectYs).AsBag().Inverse();
}
, когда я иду, чтобы сохранить его, я изменить некоторые свойства на ObjectX и затем :
Session.SaveOrUpdate(x);
Теперь мне нужно обновить это свойство, которое является списком. Я получаю новый список objectYs, и я хочу заменить существующий список объектовY новым списком. мне нужно это сделать?
foreach (ObjectY y in x.ListOfObjectYs)
{
Session.Delete(y);
deleted = true;
}
if (deleted)
{
_session.Flush();
}
x.ListOfObjectYs.Clear();
foreach (ObjectY y in newObjectYList)
{
x.ListOfObjectYs.Add(y);
Session.SaveOrUpdate(y);
}
_session.Flush();
мои вопросы:
- Должен ли я удалить все и перенесут, прежде чем добавлять новые.
- мне нужно сделать все эти инкрементный сохраняет между
есть лучший способ сделать это обновление, где мне нужно обновить объект (свойства), но и обновить свойства, список которых есть ли весь новый список (это означает, что элементы необходимо удалить и добавить).
быть ясно, я добавить Cascade.AllDeleteOrphan() в мой файл отображения. Этого достаточно. Можете ли вы предоставить синтаксис для обновления списка, поскольку я не совсем понимаю, что вы имеете в виду, «я могу просто удалить их для каждого», в какой-то момент мне нужно удалить существующие записи и добавить новые. Я не вижу, как я выхожу из этого. – leora 2010-12-10 03:25:50
- теперь я получаю сообщение об ошибке: сбор с cascade = "all-delete-orphan" больше не ссылался на экземпляр объекта-владельца: ObjectY – leora 2010-12-10 03:52:04