流利的nHibernate和映射IDictionary <daysofweek,idictionay <int,decimal =“”>&gt;怎么样?</daysofweek,idictionay <int,>

时间:2010-04-10 14:19:32

标签: nhibernate mapping fluent idictionary

我在使用Dictionary类型的属性和类型为Dictionary的值的类映射时遇到问题,如下所示:

  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 个答案:

答案 0 :(得分: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