0
나는 사람이 사망 증명서를 가질 수있는 사람과 사망 진단서를 모델링했다. 내가있는 경우 :nHibernate 코드에 의한 매핑을 사용하여 Zero 또는 One to One
public class Person
{
public string PersonId { get; set; }
public virtual DeathCertificate { get; set; }
}
과 : DeathCertificateId 데이터베이스에 DeathCertificate의 기본 키입니다
public class DeathCertificate
{
public string DeathCertificateId { get; set; }
public string PersonId { get; set; }
public virtual Person { get; set; }
}
합니다. 사망 진단서에 대한
this.OneToOne(
entity => entity.DeathCertificate,
mapper =>
{
mapper.Access(Accessor.Property);
mapper.Cascade(Cascade.Detach | Cascade.Persist);
mapper.PropertyReference(p => p.Person);
mapper.Constrained(false);
});
그리고이 : 다음 사람에 대한 매핑에 다음과 같이
는
this.ManyToOne(
entity => entity.Person,
mapper =>
{
mapper.Column("PERSON_ID");
mapper.Cascade(Cascade.None);
mapper.Unique(true);
});
불행하게도,이 내가 여부를 사람을 조회 할 때마다 다음과 유사한 SQL을 생성 가입 여부 :
select ...
from person p
left outer join deathcertificate dc
on dc.person_id = p.person_id
where p.person_id = 'ABC123'
그럼 모든 기능이 작동하지만 원하는 것은 사망 증명서를 명시 적으로 합치면받을 수 있습니다.
나는 내 매핑에 뭔가 잘못됐다고 생각합니다. 누구든지 도와 줄 수 있습니까?