Классы сущностей:
public class Purchase
{
public virtual int PurchaseId { get; set; }
public virtual int CustomerId { get; set; }
public virtual Customer Customer { get; set;}
}
public class Customer
{
public virtual int CustomerId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
}
Конфигурации спящего режима:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="xxx" assembly="xxx">
<class name="Purchase" table="Purchase">
<id name="PurchaseId" column="PurchaseId" />
<many-to-one name="Customer" column="CustomerId"/>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="xxx" assembly="xxx">
<class name="Customer" table="Customer">
<id name="CustomerId" column="CustomerId" />
<property name="FirstName" column="FirstName" />
<property name="LastName" column="LastName" />
</class>
</hibernate-mapping>
Я пытаюсь сохранить новую покупку в базе данных:
using (var session = _sessionFactory.Create())
{
var customer = new Customer { CustomerId = 1, FirstName = "John", LastName = "Smith" };
var purchase = new Purchase { PurchaseId = 1, Customer = customer };
session.Save(purchase);
session.Flush();
}
В таблице покупок есть FK в таблицу Customer.
И я получаю: «SqlException: невозможно вставить значение NULL в столбец« CustomerId », таблица« ORM.dbo.Purchase »; столбец не допускает пустых значений. INSERT завершается неудачей.»
Мне интересно, что я делаю не так. Большое спасибо за ответ.