2011-11-09 2 views
2

어떻게 구성 요소를 가질 수 있고 엔티티에 두 번 이상 나타나며 구성 요소의 열 중 하나가 공유됩니까?Fluent NHibernate 열을 공유하는 구성 요소

mapping.Component(x => x.Price1, m => 
    { 
     m.Map(x => x.Amount).Column("OfferPrice"); 
     m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
    }); 

    mapping.Component(x => x.Price2, m => 
    { 
     m.Map(x => x.Amount).Column("OfferPrice2"); 
     m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
    }); 

삽입 중에이 오류가 발생하는 것처럼 말하면 53 열 53 개 중 하나를 가져올 수 없습니다. 매핑 문제가 발생하면 일반적인 오류입니다. 작업을 잘 선택하지만 삽입하거나 업데이트 할 수 없습니다.

답변

1

는 동일한 컬럼에 매핑 할 수 있습니다,하지만 당신은 그들 중 하나 읽기 전용

mapping.Component(x => x.Price1, m => 
{ 
    m.Map(x => x.Amount).Column("OfferPrice"); 
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
}); 

mapping.Component(x => x.Price2, m => 
{ 
    m.Map(x => x.Amount).Column("OfferPrice2"); 
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID").Readonly(); 
}); 
2

매핑에서 동일한 열을 두 번 매핑 할 수 없습니다. 구성 요소에서 CurrencyConverterRateGroupID을 가져와야합니다.

+0

당신은 그것을 할 수있는 사용자 지정 필터를 만드는 방법 또는 무언가가 있지 않은지 확인을해야 할 것? – BradLaney

관련 문제