2011-12-06 5 views
0

私のクラス:自動マッピングを使用して流暢なnHibernateで型付き辞書をマッピングするにはどうすればよいですか?

[PersistClass] 
public class ExternalAccount 
{ 
    public virtual AccountType AccountType { get; set; } 
    public virtual int Id { get; private set; } 
    public virtual User User { get; set; } 
    public virtual Dictionary<string, string> Parameters { get; set; } 

    public ExternalAccount() 
    { 
     Parameters = new Dictionary<string, string>(); 
    } 
} 

辞書がマッピングされてきていません。私はディクショナリでデフォルトで自動マッピングが機能しないことを理解していますが、マッピングをどのように設定すればよいですか? All Parameters isはキーと値のペアのリストです - externalaccountテーブルへの外部キーを持つテーブルにそれらが格納されると思います。私は別のクラスでこれを行うことができることを知っていますが、クラス内のパラメータへのアクセスがより困難になります。複雑さを一度設定する必要があります。

私は新しいFluentとnHibernateを心に留めてください。

おかげで、次のような

答えて

0

単純なクラスの関係を使用:​​

public class Foo { 
    public virtual IDictionary<string, Bar> Bars { get; set; } 
} 

public class Bar { 
    public virtual string Type { get; set; } 
    public virtual int Value { get; set; } 
} 
あなたは、このように流暢NHibernateのでこれをマップすることができ

mapping.HasMany(x => x.Bars) 
     .AsMap(x => x.Type); 

Bar.Typeが使用されていますインデックスフィールドとして辞書に追加します。

FluentNHibernate mapping for Dictionary

関連する問題