2010-03-10 5 views
3

간단한 중첩 된 개체 구조를 자동 매핑 할 수 있습니까? 이 같은Fluent NHibernate를 사용하여 트리 계층을 자동 매핑 할 수 있습니까?

뭔가 : 수집 매핑

반복 열 : SharpKtulu.Core.Employee.Manages 열 : EmployeeFk

public class Employee : Entity 
{ 
    public Employee() { 
     this.Manages = new List<Employee>(); 
    } 
    public virtual string FirstName { get; set; } 
    public virtual string LastName { get; set; } 
    public virtual bool IsLineManager { get; set; } 
    public virtual Employee Manager { get; set; } 
    public virtual IList<Employee> Manages { get; set; } 
} 

이 실행시에 다음과 같은 오류가 발생합니다

이런 종류의 구조를 자동 매핑 할 수 있습니까? 아니면 이런 종류의 구조에 대해 자동 매퍼를 재정의합니까?

답변

2

이것은 아마도 "클래스 이름"+ "Fk"로 외래 키를 생성하기 때문일 수 있습니다. 따라서 Manager 속성과 Managed 속성에 대해 동일한 FK 열을 가져옵니다. 규칙을 오버라이드하여 FK 열에 속성 이름이 포함될 수 있으므로 EmployeeManagerFk 및 EmployeeManagesFk를 얻을 수 있습니다. 또는 왼쪽/오른쪽 클래스 (EmployeeManagerInEmployeeFk) 등을 모두 포함하십시오.

규칙을 재정의하는 방법은 here을 참조하십시오. 또는 다른 설정을 사용하도록 HasMany/ManyToMany 규칙을 재정의 할 수 있습니다. Google에서 FNH 문서를 읽고 샘플 코드를 읽으십시오. 규칙을 이해하는 것이 항상 쉬운 것은 아닙니다.

또 다른 매우 유용한 옵션은 export .hbm files입니다. NHibernate 오류 메시지는 항상 사용자 친화적 인 것은 아니지만 일반적으로 내 보낸 .hbm 파일을보고 오류를 찾습니다. 최근의 "깨는"변화 전후에 어떤 일이 일어나고 있는지 비교할 수 있습니다. 귀하의 경우 중복 된 이름이 어디에 적용되는지 쉽게 알 수 있습니다.

관련 문제