나는 Person
과 Position
이라는 두 개의 엔티티 클래스가 있습니다.NHibernate를 사용하여 객체를 가져 오지 않고 관계 설정하기
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에 위치 ID를 제공하고 사람 행을 저장하는 것이 가능합니까?
미리 감사드립니다.