2010-06-02 2 views
1
Orders Table 

Id(x => x.ID, "ID"); 
... 
HasMany<OrdersLineItems>(x => x.LineItems).KeyColumn("ID").Inverse().Cascade.All(); 

OrdersLineItems Table 

Id(x => x.ID, "ID"); 
... 
References(x => x.Orders, "OrdersID").ForeignKey("ID"); 

Я пытаюсь настроить сопоставление, в котором идентификатор из таблицы ордеров указан в OrdersID в OrdersLineItemsTable.Проблемы с отображением NHibernate Fluent

Проблема, с которой я сталкиваюсь, - это когда я делаю: order.LineItems.Add (lineItem); в моем коде я получаю сообщение об ошибке SQL:

Невозможно вставить значение NULL в столбец «OrdersID», таблицу «MyDatabase.dbo.OrdersLineItems»; столбец не допускает нулей. INSERT терпит неудачу. Заявление было прекращено.

Я отслеживал выполняемые SQL-запросы и вижу, что запись Orders впервые создана и запускается при попытке создать запись OrdersLineItems.

Любые предложения? Заранее спасибо.

ответ

1

Мое предложение было бы использовать внешний ключ в KeyColum из HasMany вместо первичного ключа из OrdersLineItems:

HasMany (х => x.LineItems) .KeyColumn (»FK_Orders «) .Inverse() Cascade.All().

+0

Спасибо. Это сработало. –

Смежные вопросы