Roo*_*ian 5 c# many-to-many associations automapper object-object-mapping
我有两个实体:Employee和Team.

我想要的是EmployeeForm具有Name的Team.

如何使用AutoMapper实现此目的?
我目前的"解决方案"如下:
Mapper.CreateMap<Employee, EmployeeForm>()
.ForMember(dest => dest.TeamName, opt => opt.MapFrom(x => x.GetTeams().FirstOrDefault() != null ? string.Join(", ", x.GetTeams().Select(y=>y.Name)) : "n/a"));
Run Code Online (Sandbox Code Playgroud)
在我看来,这是可读的.
我想要的是一个通用方法,我可以传递一个实体,选择集合并说集合是否为null返回默认值,或者通过lambda表达式选择集合的属性.
我重新思考了我的整个设计,开始改变域模型:

我使用关系表将其更改many-to-many association为两个。one-to-many associations
有了这个更简单的域模型,我可以使用AutoMapper轻松地将其映射到平面 DTO中。
public class TeamEmployeeMapperProfile : Profile
{
protected override void Configure()
{
CreateMap<TeamEmployee, TeamEmployeeForm>();
}
}
Run Code Online (Sandbox Code Playgroud)
是的,就是这样:)
这是平面视图模型对象。

| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |