automapper没有按预期映射

时间:2011-02-24 19:28:35

标签: c# automapper

我是自动播放器的新手,所以我可能会以错误的方式攻击它。我正在开发一个mvc应用程序,我想使用automapper在我的域模型和我的视图模型之间进行映射。我的观点是让IList呈现html页面。

以下是我的控制器代码 -

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; }
}

这是我的viewModel -

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

通过阅读codeplex上的文档,我假设来自entity2的所有内容的映射都会自动生效,但是当我运行测试AssertConfigurationIsValid时,它会在entity2ething上失败。

我看到帖子here表明应该有一个要映射到的entity2Dto对象,但是它在哪里绑定?我是否必须将其添加到我的viewModel对象?

我在某处错过了某个地图吗?我无法弄清楚它应该如何工作。 谢谢你的任何想法。

1 个答案:

答案 0 :(得分:0)

问题似乎与属性名称大小写有关!

如果您将视图模型属性重命名为entity2Everything(而不是entity2everything),它应该可以工作。

有趣的Entity2一切似乎也有效 - 我不确定这是设计还是AutoMapper代码中的错误。