2010-05-28 7 views
0

다 - 대 - 다 관련 엔티티를 저장할 때 엔티티가 저장됩니다. 그러나 접합 테이블이 비어 유지 : 제품 측면에fluentnhibernate ManyToMany가 접합 테이블에 레코드를 추가하지 않음

매핑 (ProductMap.cs)

HasManyToMany(x => x.Pictures) 
.Table("Product_Picture") 
.ParentKeyColumn("Product") 
.ChildKeyColumn("Picture") 
.Cascade.All() 
.Inverse() 

이 다음 XML 생성 : 그림 측

<bag cascade="all" name="Pictures" table="Product_Picture"> 
    <key> 
    <column name="Product" /> 
    </key> 
    <many-to-many class="...Picture..."> 
    <column name="Picture" /> 
    </many-to-many> 
</bag> 

매핑 (PictureMap.cs를)

HasManyToMany(x => x.Products) 
.Table("Product_Picture") 
.ParentKeyColumn("Picture") 
.ChildKeyColumn("Product") 
.Cascade.All(); 

그러면 다음 xml이 생성됩니다.

<bag inverse="true" cascade="all" name="Products" table="Product_Picture"> 
    <key> 
    <column name="Picture" /> 
    </key> 
    <many-to-many class="...Product..."> 
    <column name="Product" /> 
    </many-to-many> 
</bag> 

아이디어가 있으십니까?

+0

코드 블록을 시작하기 전에 빈 줄이 필요합니다. –

+0

ok thanks :) 이제는 질문에 대한 답변 만 필요합니다. – Bertvan

+0

제안한 것처럼 더 많은 코드를 볼 필요가 있습니다 ... –

답변

0

Picture 개체의 컬렉션에 추가해야하는 대상은 Inverse()으로 선언되지 않은 관계의 방향입니다. 관계의 다른면에 추가해도 그 관계가 유지되지는 않습니다.

이 작업을 수행 중이거나 양면에 추가 작업을 수행하는 경우이 객체를 조작하고 저장하려는 코드를 게시하십시오.

+0

그들은 양쪽에 추가됩니다. 그것도 괜찮을까요? – Bertvan

+0

예, 그래야합니다. –

+0

답변으로 설정했습니다. 문제는 좀 더 복잡해졌고,이 anwer는 매핑에 문제가 없다는 결론을 내릴 수있게 도와 주었지만 다른 곳에서는 찾아야했습니다. – Bertvan

관련 문제