2011-07-22 207 views
0

我試圖完成以下。我有一個從數據庫返回值的DTO,我想將DTO映射到一個模型。我的模型具有一個類類型的屬性。我想使用DTO中的值將該屬性設置爲類的新實例。所以這裏是一些代碼,顯示了我想要做的事情。AutoMapper映射字段到

public class ItemDTO { 
    public int ItemID { get; set; } 
    public int ItemPartID { get; set; } 
    public string ItemPartName { get; set; } 
} 

public class ItemModel { 
    public int ItemID { get; set; } 
    public ItemPartModel ItemPart { get; set; } 
} 

public class ItemPartModel { 
    public int ItemPartID { get; set; } 
    public string ItemPartName { get; set; } 
} 


public void DoMapping() { 
    Mapper.CreateMap<ItemDTO, ItemModel>() 
      .ForMember(m => m.ItemPart, 
         dto => dto.MapFrom(ipm => new ItemPartModel() { 
               ItemPartID = ipm.ItemPartID, 
               ItemPartName = ipm.ItemPartName})); 
} 

當我使用這裏創建的地圖,我結束了和ItemPartName 0具有ItemModel的ItemPart屬性值「ItemPartName」

請讓我知道是否有再信息,我可以提供和感謝您的觀看。

回答

0

看來我的邏輯很好,語法正確。在我調用ItemPart屬性的代碼中,這是一個簡單的錯誤。最初,我的模型包含項目部分的ID(int)和Name屬性(字符串)(命名在我的項目中與我的示例中不同)。我使用類型ItemPartModel將這兩個屬性替換爲單個屬性,該類型封裝了這兩個字段。我的UI代碼沒有更新,只是顯示了類項目部分.ToString()。一旦我更新了我的UI代碼,它就起作用了。無論如何,這是我的藉口,但是我會留下這個問題,因爲我在使用Automapper時遇到了一些問題,找不到解決辦法,而其他人可能會覺得這很有幫助。