2011-05-03 118 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 
);