我是自动播放器的新手,所以我可能会以错误的方式攻击它。我正在开发一个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对象?
我在某处错过了某个地图吗?我无法弄清楚它应该如何工作。 谢谢你的任何想法。
答案 0 :(得分:0)
问题似乎与属性名称大小写有关!
如果您将视图模型属性重命名为entity2Everything(而不是entity2everything),它应该可以工作。
有趣的Entity2一切似乎也有效 - 我不确定这是设计还是AutoMapper代码中的错误。