我喜欢为我的DynamicComponent映射使用自定义IDictionary类:
class ObservableDictionary : Hashtable, INotifyCollectionChanged, INotifyPropertyChanged
在映射列表时,可以使用自定义集合类型,如下所示:
mapping.HasMany(x => x.Items).CollectionType<ObservableCollection<ItemClass>>();
但是我如何使用DynamicComponents做到这一点?没有CollectionType方法。
mapping.DynamicComponent(
x => x.DynamicFields,
c => {
c.Map(x => x["fld_num"]).CustomType(typeof(int));
c.Map(x => x["shortdesc"]).CustomType(typeof(string));
});
答案 0 :(得分:0)
如果您的自定义词典有一个包含数据的内部词典,那么您可以
mapping.Component(x => x.DynamicFields, c => c.DynamicComponent(
Reveal.Member<CustomDictionary, IDictionary>("_innerDictionary"),
c => {
c.Map(x => x["fld_num"]).CustomType(typeof(int));
c.Map(x => x["shortdesc"]).CustomType(typeof(string));
})
);