2010-05-22 4 views
2

다음 모델 클래스에서 어떻게 3 테이블 스키마를 만들 수 있습니까?유창한 nhibernate를 사용하여 참조 테이블을 만드는 방법

public class Product 
{ 
    public int Id {get; set;} 
    public string Name {get; set;} 
    public IList<Photo> Photos {get; set;} 
} 

public class Photo 
{ 
    public int Id {get; set;} 
    public string Path {get; set;} 
} 

나는 데이터베이스에 다음과 같은 테이블 구조를 만들려면 :

내가 유창함 자 NHibernate를 사용하여 위의 데이터베이스 스키마를 표현할 수있는 방법
Product 
------- 
Id 
Name 

ProductPhotos 
------------- 
ProductId (FK Products.Id) 
PhotoId (FK Photos.Id) 

Photos 
------ 
Id 
Path 

? 나는 단지 다음의 매핑을 관리 할 수 ​​있었지만 이것이 제 3의 사진 참조 테이블을 얻지는 못합니다.

public class ProductMap : ClassMap<Product> 
    { 
     public ProductMap() 
     { 
      Id(x => x.Id); 
      Map(x => x.Name);    
      Table("Products"); 
      HasMany(x => x.Photos).Table("ProductPhotos").KeyColumn("ProductId"); 
     } 
    } 

답변

1

사진 엔티티에 대한 클래스 맵도 만들어야합니다.

+0

이 제안을 시도했지만 좋지는 않습니다. 매핑 세부 정보가 무엇인지 더 자세히 알려줄 수 있습니까? –

+0

공용 클래스 PhotoMap : ClassMap { Id (x => x.Id); 지도 (x => x.Path); } 컬렉션 유형 (bag 또는 list)을 지정하고 제품 맵에서 hasmany를 연쇄 적으로 지정해야 할 수도 있습니다. Citymap은 오타입니다? – Paco

+0

ProductPhotoMap이라는 제 3의 ClassMap을 생성해야합니까? 귀하의 제안이 작동하지 않는 것 같습니다 –

관련 문제