如何使用FluentNHibernate映射字典?
IDictionary<SomeEnum, bool>
和..
IDictionary<string, bool>
像:
public class SomeClass
{
public int Id {get;set;}
public IDictionary<SomeEnum, bool> Dictionary2 {get;set;}
public IDictionary<string, bool> Dictionary1 {get;set;}
}
答案 0 :(得分:1)
似乎Dictionary的映射可以按如下方式完成:
// IDictionary<string, bool>
HasMany(x => x.Dictionary1).AsMap<string>("keyColumn").Element("Enabled");
// IDictionary<SomeEnum, bool> (Enum will be mapped as int)
HasMany(x => x.Dictionary2).AsMap("SomeEnum").Element("Enabled");
// IDictionary<Entity, string>
HasMany(x => x.Dictionary3).AsEntityMap().Element("valueColumn");
答案 1 :(得分:0)
据我所知,您无法将字典映射到数据库。而且,SQL Server中的枚举没有等价物。为了实现IDictionary<string, bool>
,我想,你需要创建单独的表,它将包含Id,你的String,布尔值和FK到SomeClass(多对一关系)。使用枚举字典是相同的情况,但该外表的内容取决于您的需要。