Обновление nHibernate оставляя потерянные строки - PullRequest
1 голос
/ 16 июня 2010

Использование 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 соответствует ожиданиям, когда он обновляется, и я убедился,мой метод обновления не вызывается дважды.Может кто-нибудь указать мне, в чем может быть проблема?

Приветствия, Мэтт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...