地图IDictionary <字符串,字符串>与流利NHibernate

问题描述:

我试图映射IDictionary<string, string>与流利NHibernate和命中路障。地图IDictionary <字符串,字符串>与流利NHibernate

我有3种型号,

public class Node { 
    public virtual int Id { get; set; } 
    public virtual IDictionary<string string> Fields { get; set; } 
} 

public class Field { 
    public virtual int Id { get; set; } 
    public virtual string name { get; set; } 
} 

public class NodeData { 
    public virtual Node Node { get; set; } 
    public virtual Field Field { get; set; } 
    public virtual string Data { get; set; } 
} 

我的映射看起来像这样

public NodeMap() { 
    HasMany<NodeData>(x => x.Fields) 
     .AsMap(x => x.Field.Name) 
     .Element("Data"); 
} 

然而,这是因为Field是一个参考,而不是一个属性显然会给出错误。

我想能够访问我的字典一样,Fields["name"] = value;

有没有办法做到这一点?

+0

如果你有'词典',哪里该'Field'类从何而来? Fluent Nhibernate如何知道这一点? – 2014-10-01 19:48:41

+0

@OskarBerggren NodeData类有一个组合键'Node_Id'和'Field_Id'。字典基本上是 2014-10-01 19:53:18

+0

“本质上”=>不是真的。根据你的代码,字典是一个 - 它无法在映射中假装。这里似乎也有一些“循环”,我不能完全放下手脚。 – 2014-10-01 20:18:46

刚刚打完类Field和类NodeData

public NodeMap() 
{ 
    HasMany(x => x.Fields) 
     .Table("NodeData") 
     .KeyColumn("node_id") 
     .AsMap("key") 
     .Element("data"); 
}