У меня есть два стола, tableA и tableB.не удалось удалить коллекцию: [NHibernate.Exceptions.GenericADOException]
TABLEA есть колонка: tabAId, Col2, col3 (tabAId PrimaryKey и столбец Подлинность.)
TableB есть колонки: tabAId, имя (tabAId не равно нулю)
У меня есть создать мешок в файле hbm таблицыA, для поддержания отношения судна.
<bag name="tableB" lazy="true" inverse="false"
batch-size="25" cascade="all-delete-orphan">
<key column="tabAId" />
<one-to-many class="tableB" />
</bag>
Когда я пытаюсь обновить запись в TABLEA это бросить исключение, где, как у меня есть список ребенка в случае TABLEA.
[NHibernate.Exceptions.GenericADOException] = { "не удалось удалить коллекцию: [MIHR.Entities.tableA.tableB # 21] [SQL: UPDATE SET dbo.tableB tabAId = NULL WHERE tabAId = @ p0]" }
InnerException = { "не удается вставить значение NULL в столбце 'tabAId', таблица 'SA_MIHR_DEV.dbo.tableB';... колонка не позволяет аннулирует UPDATE не может \ г утверждение \ NThe было прекращено" }
Если я установил Inverse = "true", то он не будет вставлять вновь созданное значение столбца Identity в дочернюю таблицу, вставляя новую запись в родительскую таблицу. –
Kohler: Расскажите, пожалуйста, как это сделать, когда я установлю 'inversr =" true "'. –
Теперь вы должны это увидеть ... Я обновил свой ответ. Конечно, ваш дочерний объект должен иметь ссылку на родителя. Проверьте это http://stackoverflow.com/a/30005490/1679310 для ВСЕХ ДЕТАЛЕЙ –