У меня есть классы Customer
и Profile
, где у одного клиента может быть много профилей.
Я использую с ними следующие классы переопределения NHibernate:
public void Override(AutoMapping<Customer> mapping)
{
mapping.Table("[Customer]");
mapping.Id(x => x.Id, "Id").GeneratedBy.Identity();
mapping.HasMany(x => x.Profiles).Cascade.All().Inverse();
mapping.Map(x => x.FirstName, "FirstName");
mapping.Map(x => x.LastName, "LastName");
mapping.Map(x => x.Email, "Email");
}
public void Override(AutoMapping<Profile> mapping)
{
mapping.Table("[Profile]");
mapping.Id(x => x.Id, "Id").GeneratedBy.Identity();
mapping.References(x => x.Customer, "Customer_Id").Cascade.None();
mapping.Map(x => x.FacebookProfileLink, "FacebookProfileLink");
mapping.Map(x => x.ContactPhone, "ContactPhone");
}
При вставке объекта Profile
появляется следующая ошибка:
Невозможно вставить значение NULL в столбец «Customer_Id», таблица «dbo.Profile»; столбец не допускает значений NULL. Ошибка INSERT. \ R \ nОператор прерван.
Я намерен вставить объект Customer
перед Profile
, которому нужна ссылка на объект Customer
. Вот почему я использую обратный атрибут. К сожалению, это не работает. Любая помощь по этому поводу? Спасибо.