2011-02-24 72 views
0

我是automapper的新手,所以我可能會以錯誤的方式攻擊它。我正在開發一個mvc應用程序,我想使用automapper來映射我的域模型和我的視圖模型。我的觀點是讓IList呈現html頁面。automapper沒有按預期映射

這裏是我的控制器代碼 -

IList<viewModel> vm = Mapper.Map<IList<entity1, viewModel>(dataFromEntity1); 

這裏是我的Automapper配置 -

protected override void Configure() 
{ 
    CreateMap<entity1, viewModel>(); 
} 

這裏是我的ENTITY1

public class entity1 
{ 
     public virtual int id { get; set; } 
     public virtual string anything { get; set; } 

     public virtual Entity2 entity2 { get; set; } 
} 

這裏是ENTITY2 -

public class entity2 
{ 
     public virtual int id_2 { get; set; } 
     public virtual string everything { get; set; } 
} 

這裏是我的視圖模型 -

public class viewModel 
{ 
     public string anything { get; set; } 
     public string entity2everything { get; set; } 
} 

從通過CodePlex上的文檔閱讀,我以爲一切從ENTITY2映射會自動工作,但是當我運行測試AssertConfigurationIsValid,它entity2everything失敗。

我見過帖子here,顯示應該有一個entity2Dto對象映射到,但是這個綁定在哪裏?我必須將其添加到我的viewModel對象嗎?

我缺少映射的地方嗎?我無法弄清楚這應該如何工作。 感謝您的任何想法。

回答

0

該問題似乎與屬性名稱框有關!

如果您將視圖模型屬性重命名爲entity2Everything(而不是entity2everything)它應該工作。

有趣的實體2一切也似乎工作 - 我不知道這是否是由設計或AutoMapper代碼中的錯誤。

+0

仍似乎沒有工作。我從測試失敗中得到的唯一消息是添加一個自定義的映射表達式,忽略或重命名entity1上的屬性 – czuroski 2011-02-25 13:17:22

+0

我想我明白了。它可能與一個關係有關 - 嘗試自動映射和拼合一對多。我可能最終不得不使用自定義解析器。謝謝 – czuroski 2011-02-25 13:55:26