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(多對一關係)。使用枚舉字典是相同的情況,但該外表的內容取決於您的需求。

相關問題