У меня есть два объекта, управляемых NHibernate, которые имеют двунаправленное отношение один ко многим:
public class Storage
{
public virtual string Name { get; set; }
public virtual IList<Box> Boxes { get; set; }
}
public class Box
{
public virtual string Box { get; set; }
[DoNotSerialize] public virtual Storage ParentStorage { get; set; }
}
A Storage
может содержать множество Boxes
, а Box
всегда принадлежит Storage
. Я хочу отредактировать имя Box's
, поэтому отправляю его клиенту, используя JSON. Обратите внимание, что я не сериализую ParentStorage
, потому что я не изменяю, в каком хранилище он находится.
Клиент редактирует имя и отправляет Box
обратно как JSON. Сервер десериализует его обратно в Box
сущность.
Проблема в том, что свойство ParentStorage
равно нулю. Когда я пытаюсь сохранить Box
в базе данных, он обновляет имя, но также удаляет связь с Storage
.
Как правильно сериализовать и десериализовать сущность, подобную Box
, сохраняя при этом размер данных JSON минимальным?