Возможно, это глупый вопрос, но я все еще пытаюсь обернуть голову вокруг nHibernate.Как определить, был ли изменен объект nHibernate
Насколько я могу судить по использованию программного обеспечения, nHibernate требует от вас немного дополнительной обработки для правильного сохранения изменений.
Предположим, у меня есть объект X, который может содержать много объектов Y. Я создам X, который имеет 2 Y, каждый из которых имеет свои собственные свойства. Затем я решил, что хочу обновить X. Я собираюсь добавить новый Y и изменить один из существующих Y.
Таким образом, я загружаю в свой объект X, используя его идентификатор. Затем я повторяю Y, который я добавляю, добавляю их в X и сохраняю лот, используя инструкцию update.
Если вы сделаете это, вы обнаружите, что «старый» Y потерял сиротство в базе данных. Который, когда я думаю об этом, - это именно то, что я ожидал бы, - я все же не избавился от этих объектов, я только что создал несколько новых.
Итак, есть два способа взглянуть на это. Либо я должен удалить все данные Y, а затем повторно создать его, или я должен иметь возможность отмечать до nHibernate, что то, что я делаю, является изменением и что оно должно обновлять существующие объекты, а не создавать новые , Проблема в том, что я не уверен, какой подход является «правильным» или как это лучше всего сделать - первое кажется чрезвычайно неэффективным, а последнее означает установку множества «измененных» флагов и очень сложного кода.
Таким образом, я уверен, должно быть, более легкое решение, которое мне не хватает в моей глупости. Может кто-то момент мне на лучший подход и как лучше справиться с этим в NHibernate ... то есть, если вопрос имеет смысл вообще :)
Приветствия, Matt