1
我有一个具有嵌套类的主类。我已成功地使用此映射使用Mapper类AutoMapper配置文件:展平dto映射
public class Main
{
public string Name { get; set; }
public List<QuantityLocation> NC { get; set; }
}
public class NestedClass
{
public decimal B { get; set; }
public string A { get; set; }
}
public class Flattened
{
public string Name { get; set; }
public string A { get; set; }
public decimal B { get; set; }
}
使用Mapper类进行映射,如下所示。
Mapper.CreateMap<NestedClass, Flattened>();
Mapper.CreateMap<Main, Flattened>();
Mapper.CreateMap<Main, List<Flattened>>()
.ConvertUsing(i =>
i.NC.Select(
flat =>
{
var flatList = Mapper.Map<Flattened>(i);
Mapper.Map(flat, flatList);
return flatList;
}).ToList());
现在,当我提出这个映射到我的个人资料类,我不得不改变上面这下面几行:
CreateMap<NestedClass, Flattened>();
CreateMap<Main, Flattened>();
CreateMap<Main, List<Flattened>>()
.ConvertUsing(i =>
i.NC.Select(
flat =>
{
var flatList = Mapper.Map<Flattened>(i);
Mapper.Map(flat, flatList);
return flatList;
}).ToList());
我现在面临的问题是如何下面这两条线的转换上面的代码片段。
var flatList = Mapper.Map<Flattened>(i);
Mapper.Map(flat, flatList);
你看到我注入Mapper.Engine到我的控制器的构造函数。早些时候,我只是使用静态映射器类来调用我的global.asax。现在我收到如下所示的错误。
Missing type map configuration or unsupported mapping.
Mapping types: Main -> List`1 MyProj.Main -> System.Collections.Generic.List`1[[MyProj.Flattened, MyProj, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
Destination path: List`1
Source value: MyProj.Main
如何设置'automapper'进行注入?你是否使用'Profile'来配置映射? – Ric
是的,我正在使用配置文件来配置映射。 – user20358