У меня есть две таблицы в устаревшей базе данных ...
tblParentTable (int id, string specialIdentifier, ...)
tblChildTable (int id, string specialIdentifier, ...)
Как видите, автоматически добавляемый int id был добавлен, но дочерняя таблица объединяется с использованием старого строкового первичного ключа (на самом деле specialIdentifier является первичным ключом tblParentTable, а первичный и внешний ключи - в tblChildTable) ).
Итак, я создал доменные объекты и карты Fluent NHibernate, но из-за этой странной схемы NHibernate считает, что сначала необходимо сохранить запись tblChildTable, а затем сохранить tblParentTable - это приводит к ошибке ограничения внешнего ключа.
Как я могу намекнуть NHibernate, что tblParentTable является родительским и должен быть сохранен первым?
Вот такие отображения ...
public ParentMap()
{
Table("tblParentTable");
Id(x => x.Id).Column("id");
Map(x => x.SpecialIdentifier);
References(x => x.Child).Column("specialIdentifier");
}
public ChildMap()
{
Table("tblChildTable");
Id(x => x.Id).Column("id");
Map(x => x.SpecialIdentifier);
References(x => x.Child).Column("specialIdentifier");
}
Пожалуйста, не стесняйтесь спрашивать дополнительную информацию, если вы считаете, что я упускаю что-то важное.
Спасибо