2011-05-03 165 views
1

我相信這是一個基本AutoMapper問題:Automapper - 從實體框架映射許多一對多查找到視圖模型

我有一個單一的「文章」實體框架的實體,我映射到一個視圖模型傳遞以查看編輯。這工作得很好:

​​

現在,我的EF模型包括通過TopicArticles查找表許多一對多關係的主題表,我想,當我編輯此文章的數據管理協會。

所以我加入這個我視圖模型:

public ICollection<TopicArticle> TopicArticles { get; set; } 

我相信這是反映實體類型正確規範 - 我的EF模型具有TopicArticles協會會員爲EntityCollection。

,我添加第二個視圖模型類填充列表:「缺少類型映射配置或不支持的映射」

public class TopicArticle 
{ 
    public int ArticleId { get; set; } 
    public int TopicId { get; set; } 
    public bool IsPrimaryTopic { get; set; } 
} 

當我運行的映射,我得到這是可以理解的,因爲我沒有告訴Automapper我的TopicArticle viewmodel類。

所以: 問題:

如何更改我的映射考慮到這一點額外的層?

(我真的不理解應如何映射到的Automapper語法)。

另外:有我錯過了什麼事嗎?

NOTE/UPDATE:

有我貼的代碼,任何「出版」這似乎是不正確的,應該是「文章」的一些錯誤 - 那是因爲我簡化situration位:文章實際上來自出版物,但我不想在這個問題上有那麼複雜。

回答

2

好的,這確實很基礎。我的問題沒有得到實際的Automapper文檔。谷歌搜索「automapper文檔」獲取此鏈接的頂級響應:

http://automapper.codeplex.com/documentation

這是一個無用的TOC。

從主頁訪問真實文檔。

的回答我的問題很簡單: 首先,我爲清楚起見,將名稱更改我的第二個視圖模型類:

public class TopicArticleAdmin 

然後回到我的行動,我增加一個映射行:

Mapper.CreateMap<Publication, ArticleAdmin>(); 
Mapper.CreateMap<TopicPublication, TopicPublicationAdmin>(); 
var articles = Mapper.Map<IEnumerable<Publication>, IEnumerable<ArticleAdmin>>(
    articleEntities 
);