1
public class StaffMap : ClassMap<Staff>
{
public StaffMap()
{
Id(x => x.Id);
Map(x => x.Name);
References(x => x.Manager).Column("ManagerId");
HasMany(x => x.Team).KeyColumn("ManagerId").Inverse();
}
}
이제이 간단한 예제
직원 클래스
public class Staff
{
public Staff()
{
Team = new List<Staff>();
}
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Staff> Team { get; set; }
public virtual Staff Manager { get; set; }
}
유창 매핑의 다른 인스턴스를 참조하는 직원 수업을 개선 할 수 있습니다 I 모든 직원을로드하고 관리자와 팀 구성원을 열렬히로드하는 쿼리를 실행하려고합니다. 이것은 SQL, 이것은해야 2 team2_.ManagerId 및 2
질문은SELECT
this_.Id as Id0_1_,
this_.Name as Name0_1_,
this_.ManagerId as ManagerId0_1_,
team2_.ManagerId as ManagerId3_,
team2_.Id as Id3_,
team2_.Id as Id0_0_,
team2_.Name as Name0_0_,
team2_.ManagerId as ManagerId0_0_
FROM [SelfRef].[dbo].[Staff]
this_ left outer join
[SelfRef].[dbo].[Staff] team2_
on this_.Id=team2_.ManagerId
을 team2_.Id, 중복 된 열이 (내가 원하는 않습니다)하지만 내가
IList<Staff> resutls =
session.CreateCriteria<Staff>()
.SetFetchMode("Team", FetchMode.Eager)
.SetResultTransformer(Transformers.DistinctRootEntity)
.List<Staff>();
해낸 것입니다 사고?
내가 쿼리 나 맵에서 뭔가 잘못 했습니까?
또는 사용중인 HHib의 기능 (버전 2.1.0.4000)은 무엇입니까? 사전에
많은 감사