2011-04-07 2 views
1

를 삭제하면 문제는 그게 내가 hasOne의를 사용하는 이유, 유창함 자 NHibernate하십시오 hasOne의 관계

public PartMap() 
{ 
    Id(x => x.ID).GeneratedBy.Guid(); 
    HasOne(x => x.Stock) 
      .Cascade.All(); 
} 

public Stock 
{ 
    Id(x => x.ID).GeneratedBy.Guid(); 
    References(x => x.Part); 
} 

부분이 하나 개의 주식을 가지고 두 개의 클래스

있습니다. 데이터가 삽입됩니다. 부품이 있고 재고가있어 저장되었습니다. 나는 그것을 전에 관련 주식을 삭제하지 않고 부분을 삭제하려고 볼 부분 주식 foreing 키
"ORA-02292: integrity constraint (PRINERGY.FK121AD9E59966BE23) violated " . 

을 위반 한 것으로 오류가 삭제할 때 내 문제입니다. 어떻게 해결할 수 있습니까?

답변

4

이것은 일대일 양방향 연관성처럼 보입니다. NH (및 FNH)에서이 연관을 매핑하는 방법에는 두 가지가 있습니다. 기본 키 연관과 외래 키 연관. 귀하의 예는 외래 키 협회에 가깝습니다. 자세한 내용은

외래 키 관계

public PartMap() 
{ 
    Id(x => x.Id).GeneratedBy.Guid(); 
    References(x => x.Stock).Unique().Cascade.All(); 
    Map(x => x.Name); 
} 

public StockMap() 
{ 
    Id(x => x.Id).GeneratedBy.Guid(); 
    HasOne(x => x.Part).Cascade.All().PropertyRef("Stock"); 
    Map(x => x.Name); 
} 

프라이 머리 키 연관

public PartMap() 
{ 
    Id(x => x.Id).GeneratedBy.Guid(); 
    HasOne(x => x.Stock).Cascade.All(); 
    Map(x => x.Name); 
} 

public StockMap() 
{ 
    Id(x => x.Id).GeneratedBy.Foreign("Part"); 
    HasOne(x => x.Part).Constrained(); 
    Map(x => x.Name); 
} 

http://fabiomaulo.blogspot.com/2010/03/conform-mapping-one-to-one.html를 참조하십시오.

+0

감사합니다 !!!! 지금 작동 중입니다 – Hada

+0

어떤 버전을 사용하셨습니까? 그리고이 답을 해결 된 것으로 표시해 주시겠습니까? :) –

관련 문제