Я использую NHibernate с базой данных SQL CE Desktop, и я получаю странную ошибку, когда пытаюсь выполнить обновление. SQL CE выбрасывает ошибку 25026: «Значение внешнего ключа не может быть вставлено, потому что соответствующее значение первичного ключа не существует».NHibernate throwing SQL CE Ошибка 25026
Исключение возникает при выполнении каскадного обновления свойства коллекции объекта сущности. Объект entity является владельцем, а объектом коллекции являются Projects (IList), проекты для определенного владельца. В моей базе данных первичный ключ таблицы Owners - это трехсимвольная строка (инициалы владельца) с соответствующим внешним ключом в таблице Projects.
Вот почему я озадачен: NHibernate может получить все записи для определенного владельца (например, «DCV»). И в моем коде я могу добавить новый объект Project к Owner.Projects без проблем. Я беру значение идентификатора владельца непосредственно из объекта Owner, полученного из базы данных, поэтому я знаю, что первичный ключ существует в таблице Owners. Но когда я делаю ISession.SaveOrUpdate() на моем объекте Owner, я получаю ошибку внешнего ключа, описанную выше.
Имею ли я дело с некоторой идиосинкратией NHibernate или некоторой обычной ошибкой в моем коде или сопоставлениях? Любые мысли, которые помогут мне устранить эту проблему, очень ценятся!
Дэвид Veeneman Foresight Systems
Пожалуйста, включите ваши сопоставления в вопрос. – ahsteele