4
我有一個類,Item
,它有很多Rates
。他們被一個枚舉鍵入,RateType
。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'屬性仍然沒有被返回。我試着將它添加到組件中,但是我收到了一個錯誤:「在收集映射中重複列」。但這完全是另一個問題!謝謝! – 2010-06-08 20:09:02