Использование Fluent nHibernate в моей базе данных.
Я озадачен тем, почему один из моих операторов .Update создает новые данные и оставляет старые данные в таблице как потерянные строки без ключа.Возьмем это в качестве примера: проблемный объект - это объект «MetaData», который имеет отношение «многие к одному» с объектом «Page» (страница может иметь много объектов MetaData).
Так что, если у меня естьследующая строка метаданных для Page 1
Id Page_Id name content
1 1 test1 test1
У меня есть некоторые функции, которые позволяют пользователям добавлять больше пар имя / содержимое в метаданные страницы.Кажется, это работает нормально: пошагово просматривая код в конце процесса, объект Page имеет ожидаемое количество объектов MetaData с ожидаемыми значениями.Допустим, пользователь добавляет еще одну строку значений test2, test2.После вызова session.Update с этим объектом Page моя таблица выглядит следующим образом:
Id Page_Id name content
1 null test1 test1
2 1 test1 test1
3 1 test2 test2
Другими словами, nHibernate сохранил новые данные, но оставил старое значение в таблице с нулевым page_Id.Это происходит, если в таблице несколько старых строк - все они дублируются и теряются таким образом.
Я проверил, что объект Page соответствует ожиданиям, когда он обновляется, и я убедился,мой метод обновления не вызывается дважды.Может кто-нибудь указать мне, в чем может быть проблема?
Приветствия, Мэтт