如何使用 AutoMapper 将关系 table 中的信息从多对多关系 table 映射到实体模型 class
How to map info from the relationship table from the many-to-many relatonship table into entity model class using AutoMapper
如何将关系 table 中的信息映射到多对多关系,并将其一个或多个属性映射到该查询中使用的 table 之一的实体使用 AutoMapper。
例如,我有以下 3 tables:
Part
====
PartId Description
1 Part1
2 Part2
3 Part3
Object
======
ObjectId Description
1 Obj1
2 Obj2
Objects_Parts
=============
ObjectId PartId IsRequired
1 1 True
1 2
2 1 True
2 3 True
我的Part模型对象定义如下:
public class PartModel
{
public int PartId {get;set;}
public string Description {get;set;}
public bool IsOptional {get;set;}
}
如您所见,我在 PartModel 对象中定义了 IsOptional 属性,我想将 IsOptional 属性 从关系 table 映射到相关的 PartModel 对象。
我目前正在如下映射此关系并且它工作正常但如前所述,我需要将 IsOptional 属性 从关系 table 映射到相关部分:
CreateMap<ObjectData, ObjectModel>()
.ForMember(o => o.Parts, opt => opt.MapFrom(opt => opt.ObjectsParts.Select(o => o.Parts)));
我怎样才能做到这一点?
我希望以上内容有意义。
谢谢。
假设您已经有 PartData -> PartModel
映射被 ObjectData.ObjectParts -> ObjectModel.Parts
映射的 Select
部分使用,删除 Select
部分并创建现在需要的映射 ObjectPartData -> PartModel
.
ObjectPartData
包含您需要的所有数据。映射直接属性并使用 IncludeMembers 从 PartData -> PartModel
映射中映射其余属性。
例如
// (1)
CreateMap<ObjectData, ObjectModel>()
.ForMember(dst => dst.Parts, opt => opt.MapFrom(src => src.ObjectParts)); // requires/uses (2)
// (2)
CreateMap<ObjectPartData, PartModel>()
.IncludeMembers(src => src.Part) // requires/uses (3)
.ForMember(dst => dst.IsOptional, opt => opt.MapFrom(src => !src.IsRequired));
// (3)
CreateMap<PartData, PartModel>();
如何将关系 table 中的信息映射到多对多关系,并将其一个或多个属性映射到该查询中使用的 table 之一的实体使用 AutoMapper。
例如,我有以下 3 tables:
Part
====
PartId Description
1 Part1
2 Part2
3 Part3
Object
======
ObjectId Description
1 Obj1
2 Obj2
Objects_Parts
=============
ObjectId PartId IsRequired
1 1 True
1 2
2 1 True
2 3 True
我的Part模型对象定义如下:
public class PartModel
{
public int PartId {get;set;}
public string Description {get;set;}
public bool IsOptional {get;set;}
}
如您所见,我在 PartModel 对象中定义了 IsOptional 属性,我想将 IsOptional 属性 从关系 table 映射到相关的 PartModel 对象。
我目前正在如下映射此关系并且它工作正常但如前所述,我需要将 IsOptional 属性 从关系 table 映射到相关部分:
CreateMap<ObjectData, ObjectModel>()
.ForMember(o => o.Parts, opt => opt.MapFrom(opt => opt.ObjectsParts.Select(o => o.Parts)));
我怎样才能做到这一点?
我希望以上内容有意义。
谢谢。
假设您已经有 PartData -> PartModel
映射被 ObjectData.ObjectParts -> ObjectModel.Parts
映射的 Select
部分使用,删除 Select
部分并创建现在需要的映射 ObjectPartData -> PartModel
.
ObjectPartData
包含您需要的所有数据。映射直接属性并使用 IncludeMembers 从 PartData -> PartModel
映射中映射其余属性。
例如
// (1)
CreateMap<ObjectData, ObjectModel>()
.ForMember(dst => dst.Parts, opt => opt.MapFrom(src => src.ObjectParts)); // requires/uses (2)
// (2)
CreateMap<ObjectPartData, PartModel>()
.IncludeMembers(src => src.Part) // requires/uses (3)
.ForMember(dst => dst.IsOptional, opt => opt.MapFrom(src => !src.IsRequired));
// (3)
CreateMap<PartData, PartModel>();