C# 如何使用Automapper从一个模型映射到(或从)多个目的地
假设我拥有以下具有一对一关系的相关实体:C# 如何使用Automapper从一个模型映射到(或从)多个目的地,c#,asp.net-core,automapper,C#,Asp.net Core,Automapper,假设我拥有以下具有一对一关系的相关实体: public class A { public int Id {get; set;} public string Name {get; set;} public string Address {get; set;} public virtual B B {get; set;} public virtual int BId {get; set;} } public class B { public in
public class A {
public int Id {get; set;}
public string Name {get; set;}
public string Address {get; set;}
public virtual B B {get; set;}
public virtual int BId {get; set;}
}
public class B {
public int Id {get; set;}
public decimal Price {get; set;}
public virtual A A {get; set;}
public virtual int AId {get; set;}
}
以及包含这两个类的字段的单个类(DTO):
public class C {
public int Id {get; set;} //which will correspond to AId
public string Name {get; set;}
public string Address {get; set;}
public decimal Price {get; set;}
}
如何使用Automapper从class C
映射到class A
和B
?
当我使用以下内容时,它表示导航属性(B
用于A类
,而A
用于B类
)为空:
CreateMap<C, A>().ReverseMap();
CreateMap<C, B>()
.ForMember(b => b.AId, opt => opt.MapFrom(c => c.Id))
.ReverseMap();
CreateMap().ReverseMap();
CreateMap()
.ForMember(b=>b.AId,opt=>opt.MapFrom(c=>c.Id))
.ReverseMap();
当我试图调用
CreateMap
中的Mapper.Map
函数时,它会产生一个错误,其中必须首先初始化Mapper。有人能给我指出正确的方向吗?这就是你要找的吗?创建2个映射配置文件。从A到C,从B到C。然后首先让A的一个实例映射到C。然后将B的一个实例映射到C,但传递用A到C映射创建的C的实例。哦,我明白了!没有想到要更新已经创建的当前实例,我也不知道它有过载。非常感谢你!