C# 自动映射器无法映射对象内部的对象
我正在尝试将视图模型映射到模型。我的模型如下所示:C# 自动映射器无法映射对象内部的对象,c#,automapper,C#,Automapper,我正在尝试将视图模型映射到模型。我的模型如下所示: public class FinalsViewModel { public FinalViewMode First { get; set; } public FinalViewModel Second { ge
public class FinalsViewModel
{
public FinalViewMode First { get; set; }
public FinalViewModel Second { get; set; }
}
public class Finals
{
public Final First { get; set; }
public Final Second { get; set; }
}
// And Final:
public class FinalViewModel
{
public int Another { get; set; }
}
public class Final
{
public int Order { get; set; }
public int Another { get; set; }
}
CreateMap<FinalsViewModel, Finals>()
.ForMember(src => src, opt => opt.MapFrom((src, dest) =>
{
var list = new List<Final>();
if (src.First != null && src.First?.Another != null)
list.Add(new Final { Order = 1, Another = src.First.Another });
if (src.Second != null && src.Second?.Another != null)
list.Add(new Final { Order = 2, Another = src.Second.Another });
var result = new Finals() // logic for mapping First = First, Second = Second etc;
return result;
}));
我创建了如下所示的映射:
public class FinalsViewModel
{
public FinalViewMode First { get; set; }
public FinalViewModel Second { get; set; }
}
public class Finals
{
public Final First { get; set; }
public Final Second { get; set; }
}
// And Final:
public class FinalViewModel
{
public int Another { get; set; }
}
public class Final
{
public int Order { get; set; }
public int Another { get; set; }
}
CreateMap<FinalsViewModel, Finals>()
.ForMember(src => src, opt => opt.MapFrom((src, dest) =>
{
var list = new List<Final>();
if (src.First != null && src.First?.Another != null)
list.Add(new Final { Order = 1, Another = src.First.Another });
if (src.Second != null && src.Second?.Another != null)
list.Add(new Final { Order = 2, Another = src.Second.Another });
var result = new Finals() // logic for mapping First = First, Second = Second etc;
return result;
}));
我的问题是,如何重写此配置以将对象映射到另一个对象中?问题是您的
FormMember(source=>source)
,自动应用默认映射源中的每个属性,第一个参数是表达式,它设计用于获取成员名称,x=>x.First
将获取First
及其类型
您想将FinalsViewModel
映射到final
,
首先,您需要创建FinalsViewModel
=>final
然后您需要创建FinalViewMode
=>Final
CreateMap<FinalsViewModel, Finals>();
CreateMap<FinalViewMode,Final>();
// you can also use `.ForMemeber()` to do more thing.
CreateMap();
CreateMap();
//您还可以使用“.ForMemeber()”做更多的事情。
这是否回答了您的问题?情况不一样。在AutoMapper api nowadeysFinalViewMode First
中没有类似于.ResolveUsing
的东西,它是一个打字错误吗?或者与FinalViewModel
不同的模型?我知道,但我还是得到了这个错误