2011-02-16 358 views
0

C#中的automapper可以將對象的屬性映射到數組/字典嗎?我曾嘗試以下內容:使用AutoMapper將對象字段映射到數組?

Mapper.CreateMap<FFCLeads.Models.FFCLead, Dictionary<string, SqlParameter>>() 
    .ForMember(d => d["LeadID"], o => o.MapFrom(s => new SqlParameter("LeadID", s.LeadID))) 
    .ForMember(d => d["LastName"], o => o.MapFrom(s => new SqlParameter("LastName", s.LastName))); 

但是,它不起作用(對象引用未設置爲實例)。基本上,我試圖將這個對象的值賦給一個SqlParameter對象的數組。可能?如果是這樣,那麼執行此操作的正確方法是什麼?謝謝。

+0

是否有使用AutoMapper? – 2011-02-16 17:48:55

回答

5

我用下面的方法:

IDictionary<string, object> GetDictionaryFromObject(object obj) 
{ 
    if(obj == null) return new Dictionary<string, object>(); 
    return obj.GetType().GetProperties(). 
       ToDictionary(p => p.Name, 
          p => p.GetValue(obj, null) ?? DBNull.Value); 
} 
相關問題