0

如何映射字典与FluentNHibernate?如何映射IDictionary <Enum, bool>?

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;} 
} 

回答

1

这似乎是解释的映射可以做如下:

// 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"); 
+3

我怎样才能在第二种情况下映射一个'Enum'为'string'? –

0

据我所知,你不能字典映射到数据库。而且,SQL Server中的枚举没有等价物。为了实现IDictionary<string, bool>,我想,你需要创建单独的表,它将包含Id,你的String,布尔值和FK到SomeClass(多对一关系)。使用枚举字典是相同的情况,但该外表的内容取决于您的需求。

相关问题