2010-02-22 2 views
1

Fluent NHibernate를 사용하여 다음 구조를 매핑하는 데 약간의 도움이 필요합니다. 내 수업 뒤에있는 논리는 선택 목록과 하나의 대답을 포함하는 질문을 갖는 것입니다. 각 대답에는 질문에 포함 된 선택 사항의 하위 목록이 포함됩니다. 나는 아래의 코드는 내가 각 클래스는이 질문에Fluent NHibernate - 같은 엔티티에 두 개의 one-to-many 매핑을 갖는 가장 좋은 방법은 무엇입니까?

class Question { 
    public virtual int Id { get; set; } 
    public virtual IList<Choice> Choices { get; set; } 
    public virtual Answer Answer { get; set; } 
} 

class Choice { 
    public virtual int Id { get; set; } 
    public virtual Question Question { get; set; } 
} 

class Answer { 
    public virtual int Id { get; set; } 
    public virtual IList<Choice> Choices { get; set; } 
} 

관련된 데이터 만 포함하기위한 코드를 최소화했습니다

더 명확 희망 여기서 문제는 대한 선택의 목록을 매핑하는 방법입니다 답안의 선택은 질문에서 같은 선택을 참조하도록

여러분이 더 좋은 생각을 가지고 있다면 같은 목표를 달성하기 위해 클래스 구조를 변경하기위한 제안도 열어 놓습니다.

미리 감사드립니다.

답변

0

나는 당신의 수업이 당신이 디자인 한 것과 똑같은 오토 맵을 쓸 것이라고 믿습니다.

그런 다음 원하는 위치에 모두 같은 선택 항목이있는 선택 목록을 채울 수 있으며 모든 것이 올바르게 작동해야합니다.

편집 : Automapping documentation에 대한 링크로 이동하십시오.

+0

저장하는 방법을 알고 있습니다. 문제는 더 많은 것을로드하는 것입니다. 예를 들어 질문 및 답변 목록에 추가 한 선택 항목이 있다고합시다. 나는 그들을지지한다. 나중에 질문과 답변을로드합니다. 여기서는 두 목록의 Choice가 동일한 객체가 될 것으로 기대합니다. 이것이 내가 찾는 시나리오입니다 (물론 가능하다면). Answer Map 클래스가 어떻게 생겼는지 적어주세요. – Gicanu

+0

지도 클래스가 전혀 필요 없다고 생각합니다. 내 대답에 대한 링크를 추가 한 FNH의 일부인 Automapping 기능을 사용하는 경우 클래스에 기반한 모든 것을 매핑합니다. 또한 저장된대로 정확히 메모리에로드됩니다. –

+0

당신 말이 맞아요, 방금 해봤 고 작동합니다. 나는 그것이 더 복잡한 것이어야한다고 생각했다. 나는 그렇게 쉽게 생각하지 못했다. 감사합니다. . – Gicanu

관련 문제