2010-04-10 51 views
0

我有問題,使得類映射型詞典的PROPERT和價值在它型詞典的太像這樣:流利的nHibernate和映射IDictionary <DaysOfWeek,IDictionay <int,decimal >>如何?

public class Class1 
    { 
    public virtual int Id { get; set; } 

    public virtual IDictionary<DayOfWeek, IDictionary<int, decimal>> Class1Dictionary { get; set; } 
    } 

我的映射是這樣的:

Id(i => i.Id); 
HasMany(m => m.Class1Dictionary); 

這沒有按」工作。我希望的重要事情是把一切都放在一張桌子上,而不是兩張。當我從這第二個IDictionary中創建類時,我遇到了更大的問題。但首先,我可以嘗試像現在這樣。

+1

這使我的頭部爆炸... o_O – 2010-04-10 17:52:56

回答

1

目前不可能在NHibernate中使用任何類型的嵌套集合。

相反,你應該如下定義屬性:

public virtual IDictionary<DayOfWeek, Class2> Class1Dictionary { get; set; } 

,並添加一個新的類:

public class Class2 
{ 
    public virtual decimal this[int key] 
    { 
     get { return Class2Dictionary[key]; } 
     set { Class2Dictionary[key] = value; } 
    } 

    public virtual IDictionary<int, decimal> Class2Dictionary { get; set; } 
} 

這樣一來,就可以正常的類和字典映射,並且仍然可以訪問您的字典爲:

class1Instance.Class1Dictionary[DayOfWeek.Sunday][1] = 9.4 
+0

好的,但是當我讓喜歡é這我仍然有問題與映射可以你寫如何以正確的方式映射這個? – szkra 2010-04-11 16:32:13

+0

我不使用Fluent。使用hbm,這是一個簡單的,請閱讀http://knol.google.com/k/fabio-maulo/nhibernate-chapter-6/1nr4enxv3dpeq/9。我不知道FNH相當於什麼。 – 2010-04-12 01:04:36

+0

我已經試過你的解決方案,但現在我不知道如何映射這個甚至在HBM。你可以幫我嗎 ? – szkra 2010-04-14 18:16:11

相關問題