使用Fluent NHibernate </string,>映射IDictionary <string,string =“”>

时间:2014-10-01 17:28:46

标签: c# nhibernate fluent-nhibernate

我正在尝试使用Fluent NHibernate映射IDictionary<string, string>,并且遇到了障碍。

我有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;

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

只需启动课程Field和课程NodeData

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