AutoMapper 一对多关系

标签 automapper one-to-many

我开始在我的项目中使用 AutoMapper。

为此,我想做以下“一对多”映射:

来源:

public class Team
{
    int Id { get; set; }
    string TeamName { get; set; }
    List<Person> Member { get; set; }
}

public class Person
{
    int Id { get; set; }
    string Name { get; set; }
}

目的地:
public class TeamDetailsViewModel
{
    int Id { get; set; }
    string TeamName { get; set; }
    List<int> MemberIds { get; set; }
}

如何继续使用 AutoMapper?这可能吗?

非常感谢。

最佳答案

这张 map 应该适合你:

CreateMap<Team, TeamDetailsViewModel>()
    .ForMember(d=>d.MemberIds, o=>o.MapFrom(s=>s.Member.Select(m=>m.Id)));

仅供引用...如果您是从数据库获取团队,请确保您渴望加载成员列表。

关于AutoMapper 一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6872610/

相关文章:

c# - 如何使用 AutoMapper 深度克隆包含 IList 属性的对象

ruby-on-rails - accepts_nested_attributes 带有 2 个嵌套表

python - 具有一对多关系的 SQLAlchemy 关系错误

asp.net-mvc - ASP.NET MVC 5 - 多对一关系的脚手架

django - 当您使用 ListView 和 DetailView (Django) 时,如何过滤书籍,以便您获得作者的书籍而不是每本可用的书籍

one-to-many - 一对多 - Sequelize 更新 - 不删除/插入 child

asp.net-mvc-3 - 在 MVC3 中使用 AutoMapper 绑定(bind)自定义属性

c# - 在安装依赖项时使用 IoC 容器是不好的做法还是代码味道?

c# - 如何使用 IMappingAction 使用 AfterMap 对 AutoMapper 配置文件进行单元测试

c# - 自动映射器将深对象自动映射到平面对象并返回