Fluent NHibernateを使用して単純なDictionaryプロパティをマッピングする最良の方法は何ですか?
5506 次
3 に答える
6
次のような単純なクラス関係を使用します。
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; }
}
次のように、FluentNHibernateを使用してこれをマッピングできます。
mapping.HasMany(x => x.Bars)
.AsMap(x => x.Type);
Bar.Type
辞書のキーフィールドとして使用される場所。
于 2009-12-12T05:41:06.013 に答える
6
public class PersistedData
{
public virtual IDictionary<key, value> Dictionary { get; set; }
}
public class PersistedDataMap : ClassMap<PersistedData>
{
HasMany(x => x.Dictionary)
.Table("dict_table")
.KeyColumn("column_id")
.AsMap<string>("key")
.Element("value");
}
Dictionary
これはテーブルに適切にマップされ、それをベースIDに関連付けるためにdict_table
使用されます。column_id
補足として、辞書のキーとして列挙型を使用する場合は、序数の代わりに文字列値を使用するために、文字列の代わりに使用NHibernate.Type.EnumStringType<MyEnum>
できることに注意してください。.AsMap<string>
于 2014-10-16T07:35:11.190 に答える
3
リストを辞書としてマップするには:
HasMany(x => x.Customers)
.AsMap();
私はそれを使用していません。例をあげることはできません。
ウィキを見てください:ページのキャッシュバージョン、実際 のページサイトがダウンしているように見えるので、ページのキャッシュバージョンを指定しました。
于 2009-09-13T13:02:27.900 に答える