自动程序将源列表项附加到目标列表

  • 本文关键字:列表 目标 程序 automapper
  • 更新时间 :
  • 英文 :


我试图映射List<string>属性,但我希望在目标对象始终具有默认值。源对象列表可以为空,也可以包含其他值。

如果列表为空,则Destination属性将只包含构造函数中定义的默认值。

如果列表包含一些数据,那么Source值应该被附加到列表中。

下面是我的代码:
    List<string> _accessRights;
    public User()
    {
        _accessRights = new List<string>() { "user" };
    }
    public List<string> AccessRights
    {
        get { return _accessRights; }
        set { _accessRights = value; }
    }

下面是我如何使用它的例子。

UserModel user = new UserModel() { access_rights = new List<string>() { "power_user", "admin" } };
        User dbUser = Mapper.Map<User>(user);

作为结果,我想有user, power_user, admin保存在数据库中。如果access_rightsnull,那么我希望只有user

这可能吗?

您可以这样创建地图:

Mapper.CreateMap<UserModel, User>()
      .ForMember(user => user._accessRights, opt => opt.MapFrom(src => src.accessRights != null ?
        src.accessRights.Union(new User()._accessRights) : new User()._accessRights));

相关内容

  • 没有找到相关文章

最新更新