Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动映射器无法映射对象内部的对象_C#_Automapper - Fatal编程技术网

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 nowadeys
FinalViewMode First
中没有类似于
.ResolveUsing
的东西,它是一个打字错误吗?或者与
FinalViewModel
不同的模型?我知道,但我还是得到了这个错误