2012-06-25 4 views
0

여러 번 물어 봤지만이 웹 사이트에서 많은 답변을 발견했습니다. 다만 이 문제를 해결할 수 없습니다.Nhibernate 자식 개체를 삭제할 수 없습니다

누구든지이 코드를 도와 줄 수 있습니까?

감사합니다. 여기

내 부모 매핑 파일 여기

<set name="ProductPictureList" table="[ProductPicture]" lazy="true" order-by="DateCreated" inverse="true" cascade="all-delete-orphan" > 
    <key column="ProductID"/> 
    <one-to-many class="ProductPicture"/> 
</set> 

내 아이 매핑 파일 여기

<class name="ProductPicture" table="[ProductPicture]" lazy="true"> 
<id name="ProductPictureID"> 
    <generator class="identity" /> 
</id> 
<property name="ProductID" type="Int32"></property> 
<property name="PictureName" type="String"></property> 
<property name="DateCreated" type="DateTime"></property> 
</class> 

내 C# 코드입니다

 var item = _productRepository.Get(productID); 

     var productPictrue = item.ProductPictureList 
      .OfType<ProductPicture>() 
      .Where(x => x.ProductPictureID == productPictureID); 

     // reomve the finding item 
     var ok = item.ProductPictureList.Remove(productPictrue); 

     _productRepository.SaveOrUpdate(item); 

확인 거짓 값이 자식 개체입니다 아직 내 데이터베이스에 있습니다.

+0

여기서 '_productRepository.SaveOrUpdate'의 코드는 무엇입니까? –

답변

0

ProductPicture의 속성으로 ProductID를 정의했기 때문에 100 % 확신 할 수는 없지만 이것이 Product 클래스의 PK라고 가정합니다. 이것을 다시 추가 할 필요는 없으며 관계에 의해 생성됩니다.

+0

도움을 주셔서 감사합니다. 내 매핑, 클래스 및 데이터베이스에서 ProductID를 제거 할 수 있다는 의미입니까?이 관계는 여전히있을 것입니다. –

+0

나는 그것을 ProductPicture에 대한 매핑 파일에서 제거하는 것을 의미한다. –

0

설정 태그에 table="[ProductPicture]"을 올바르게 사용했는지 확신 할 수 없습니다.

일대 다 태그는 이미 ProductPictureList와 ProductPicture 사이의 연결을 설정합니다. 다차원 관계를 모델링 할 때 테이블 속성은 일반적으로 별도의 관계 테이블을 사용하기위한 것이라고 생각합니다.

에서 Doc nhibernate.info :

테이블 - 콜렉션 테이블의 이름 (옵션 디폴트는 프로퍼티 이름) (사용하지 일대 협회)

And :

모든 수집 값에는 콜렉션 테이블이 필요하고 모든 콜 연관으로 매핑 된 다른 엔티티에 대한 참조 정보

관련 문제