流利的nHibernate和映射IDictionary >如何?
问题描述:
我有问题,使得类映射型词典的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中创建类时,我遇到了更大的问题。但首先,我可以尝试像现在这样。
答
目前不可能在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
这使我的头部爆炸... o_O – 2010-04-10 17:52:56