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

辞書のマッピングは次のように実行できるようです。

// 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 には enum に相当するものはありません。を実装するIDictionary<string, bool>には、ID、文字列、ブール値、FK から SomeClass (多対 1 の関係) を含む別のテーブルを作成する必要があると思います。enum 辞書も同じケースですが、その外部テーブルの内容は必要に応じて異なります。

于 2012-10-08T19:19:59.910 に答える