Entity classes:
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; }
}
hibernate configs:
<?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>
I am trying to save new purchase to database:
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();
}
Purchase table have FK to Customer table.
And I am getting: "SqlException: Cannot insert the value NULL into column 'CustomerId', table 'ORM.dbo.Purchase'; column does not allow nulls. INSERT fails."
I am wondering, what I am doing wrong. Thank you very much for anserw.