使用 Fluent NHibernate 映射简单 Dictionary 属性的最佳方法是什么?
问问题
5506 次
3 回答
6
public class PersistedData
{
public virtual IDictionary<key, value> Dictionary { get; set; }
}
public class PersistedDataMap : ClassMap<PersistedData>
{
HasMany(x => x.Dictionary)
.Table("dict_table")
.KeyColumn("column_id")
.AsMap<string>("key")
.Element("value");
}
这将正确映射Dictionary
到表dict_table
并用于column_id
将其与基本 ID 相关联。
附带说明一下,如果您想使用 Enum 作为字典中的 Key,应注意NHibernate.Type.EnumStringType<MyEnum>
可以使用字符串代替字符串,.AsMap<string>
以使用字符串值而不是 Ordinal。
于 2014-10-16T07:35:11.190 回答
6
使用简单的类关系,如下所示:
public class Foo {
public virtual IDictionary<string, Bar> Bars { get; set; }
}
public class Bar {
public virtual string Type { get; set; }
public virtual int Value { get; set; }
}
您可以通过以下方式将其与 Fluent NHibernate 映射:
mapping.HasMany(x => x.Bars)
.AsMap(x => x.Type);
WhereBar.Type
用作字典中的关键字段。
于 2009-12-12T05:41:06.013 回答