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