2010-02-11 2 views
3

내가유창함 NHibernate에 매핑 문제 : 많은자가 많은 추가 데이터와 결합

Dictionary <RelationType,IList<Post>> 

로 relatedPosts라는 게시물에 속성처럼

|Post    |   |PostRelation  | 
    |------------------|   |-----------------| 
    |PostId   |1--------*|ParentPostId  | 
    |---other stuff--- |1--------*|ChildPostId  | 
    |     |   |RelationType  | 

이상적 이드는 다음과 같은 SQL 테이블 매핑으로 어려움을 겪고 있어요 그러나 이드는 단지 게시물에 대한 재산을

s 성공적으로 관련 게시물을 얻기 위해 many to many를 사용했지만이 메소드는 추가 데이터를 잃어 버렸다.

제안 사항

답변

4

I 마지막으로 많은 연구 끝에 해결책을 찾았습니다. 그래서 나는 다른 사람들을 장래에 도울 수 있기 때문에 그것을 게시 할 것이지만. PostRelation에 추가 데이터가 있으므로 자체적으로 엔티티 여야했습니다.

--- PostRelationMap

 Id(x => x.Id, "PostRelationId").GeneratedBy.Identity(); 

     References(x => x.ParentPost, "ParentPostId") 
      .ForeignKey("FK_PostRelation_ParentPost") 
      .Fetch.Join() 
      .LazyLoad(); 

     References(x => x.ChildPost, "ChildPostId") 
      .ForeignKey("FK_PostRelation_ChildPost") 
      .Fetch.Join() 
      .LazyLoad(); 

     Map(x => x.RelationshipType).CustomType<int>().Not.Nullable(); 

--- PostMap

HasMany(x => x.ChildPosts) 
      .Access.CamelCaseField(Prefix.Underscore) 
      .Cascade.AllDeleteOrphan() 
      .KeyColumn("ChildPostId") 
      .LazyLoad();