У меня есть два класса сущностей: Person
и Position
.
public class Person
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Position Position { get; set; }
}
public class Position
{
public virtual int Id { get; set; }
public virtual string Code { get; set; }
}
Person
имеет отношение один ко многим с Position
. У меня также есть DTO PersonDto
, который приносит данные о клиенте от клиента.
public class PersonDto
{
public string Name { get; set; }
public int PositionId { get; set; }
}
После получения DTO я должен создать новый объект Person
и сохранить его. Обычно это выглядит так:
var person = new Person();
CopyFromDto(person, personDto);
var position = positionRepository.GetById(personDto.PositionId);
person.Position = position;
personRepository.Save(person);
Интересно, смогу ли я избавиться от этой строки:
var position = positionRepository.GetById(personDto.PositionId);
Причина в том, что он создает ненужный запрос SQL, который выбирает некоторые данные о положении. Можно ли каким-то образом предоставить NHibernate идентификатор позиции и сохранить с ним строку человека?
Заранее спасибо.