0

如何使用 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;} 
}
4

2 回答 2

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"); 
于 2012-10-08T20:18:08.050 回答
0

据我所知,您无法将字典映射到数据库。此外,SQL Server 中没有枚举的等效项。要实现IDictionary<string, bool>,我猜,您需要创建单独的表,其中将包含 Id、您的字符串、布尔值和 FK 到 SomeClass(多对一关系)。与 enum 字典是相同的情况,但外部表的内容取决于您的需要。

于 2012-10-08T19:19:59.910 回答