4
Rates
이있는 Item
클래스가 있습니다. 열거 형에 의해 키가 있습니다 (RateType
). 내가 thusly 히 내 매핑을 무시하고Fluent NHibernate - HasMany로 컴포넌트/값 타입 객체 사전 매핑하기
public class Item
{
int Id {get;set;}
IDictionary<RateType, Rate> Rates {get;set;}
// some other stuff
}
public class Rate
{
RateType Type {get;set;}
decimal Amount {get;set;}
decimal Quantity {get;set;}
}
:
public void Override(FluentNHibernate.Automapping.AutoMapping<Item> mapping)
{
mapping.HasMany(x => x.Rates)
.AsMap(x => x.Type)
.KeyColumns.Add("Item_Id")
.Table("InvoiceItem_Rates")
.Component(x => x.Map(r => r.Amount))
.Component(x => x.Map(r => r.Quantity))
.Cascade.AllDeleteOrphan()
.Access.Property();
}
이이 두 가지 문제가있다.
1) 항목을 가져 오면 Type
이 문제없이 사전의 키로 배치됩니다. 그러나 Rate
내의 Type
속성에는 할당되지 않습니다. 나는 테이블에 세 개의 열을 기대하고 있습니다
2) InvoiceItem_Rates
(Item_Id
, Type
, Quantity
및 Amount
. 그러나, Amount
는 의심 존재하지 않는다.
글쎄, 내가 갖는 데이터, 그리고 가장 중요한 일이 : 올바른 방법은 구성 요소()과 같습니다 호출합니다. 그러나 내 'Type' 속성은 여전히 반환되지 않습니다. 구성 요소에 추가하려고했지만 "컬렉션의 매핑에서 열을 반복했습니다"라는 오류가 발생했습니다. 그러나 그것은 또 다른 문제입니다! 감사! –