C# 使用Fluent NHibernate映射IDictionary
我试图用Fluent NHibernate绘制一个词典,但遇到了一个路障 我有三个模型C# 使用Fluent NHibernate映射IDictionary,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我试图用Fluent NHibernate绘制一个词典,但遇到了一个路障 我有三个模型 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; } publi
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");
}
但是,这显然会产生错误,因为字段是引用而不是属性
我希望能够访问我的字典,比如字段[name]=value
有什么方法可以做到这一点吗?只需踢出课堂场地和课堂节点数据,然后
如果你有一本字典,这个字段类是从哪里来的?Fluent Nhibernate怎么会知道呢?@Oskarbergren NodeData类有一个由Node_Id和Field_Id组成的复合键。字典本质上是=>不是。根据您的代码,字典是一个很好的工具-在映射中假装不是这样是没有帮助的。这里似乎也有一些循环,我不能完全理解。因此NodeData有一个节点,它有一个字典,应该由NodeData中的字段索引。但是NodeData只有一个字段,那么为什么要使用字典呢?
public NodeMap()
{
HasMany(x => x.Fields)
.Table("NodeData")
.KeyColumn("node_id")
.AsMap("key")
.Element("data");
}