Я новенький в nHibernate, помогите мне сохранить объект и его соединения в базе.
У меня есть база с двумя таблицами:
- персона (idPerson, firstName, secondName, idService
- сервис (idService, имя)
Столовый сервиз имеет 3 позиции (золото, серебро, бриллиант)
Отображение:
public class PersonMap:ClassMap<Person>
{
public PersonMap()
{
Id(x => x.id);
Map(x => x.firstName);
Map(x => x.lastName);
Map(x => x.status);
References(x => x.serviceType).Column("idServiceType");
Table("Person");
}
}
public class ServiceMap : ClassMap<ServiceType>
{
public ServiceMap()
{
Id(x => x.id);
Map(x => x.serviceName);
Table("Service");
}
}
Я использую следующий метод в репозитории для сохранения:
public void Saves(Person entity)
{
using (var session = hibernateHelp.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
ServiceRepository srp = new ServiceRepository();
NHibernateUtil.Initialize(entity.service);
session.Save(entity);
transaction.Commit();
}
}
}
Я получаю дату (firstName = "My" lastName = "Go" status = TRUE, serviceType = "gold"), затем я создаю Person:
Person df=new Person{
firstName="My",
lastName="Go",
status=true,
serviceType=new ServiceType{serviceName="gold"}
};
Когда я отправляю его в репозиторий методом Save (см. Выше), работает отображение, сохраняется новый объект в таблице person и создается новая заметка в табличном сервисе.
Мне не нужно создавать новую заметку в табличном сервисе, поскольку она содержит одну. Как сделать метод заставки, чтобы сохранить ссылку на табличный сервер, а не создать новую ???
Я ценю любые ссылки и предложения.