【问题标题】:Mapping Virtual Property Automapper映射虚拟属性 Automapper
【发布时间】:2016-07-17 20:29:09
【问题描述】:

我有一些 问题 与映射模型。所以我有一个实体模型

public class User
{
    public string UserId { get; set;}

    public ICollection<Group> Groups {get; set;}
}

和DTO模型

public class UserInfo
{   
    public string UserId { get; set;}  

    public List<GroupInfo> Groups {get; set;}
}

所以我在将 User 映射到 UserInfo 时遇到问题 GroupInfo 缺少配置类型。 如何初始化第二个映射?

User 映射到 UserInfo 如下:

var config = new MapperConfiguratiins(cfg=>cfg.CreateMap<User,UserInfo>()); 
var mapper = config.CreateMapper();
var userInfo = mapper.Map<UserInfo>(user);

【问题讨论】:

  • 你能告诉我们你是如何将用户映射到用户信息的吗?
  • var config = new MapperConfiguratiins(cfg=>cfg.CreateMap()); var mapper = config.CreateMapper(); var userInfo = mapper.Map(user);
  • 抱歉有错误
  • 你能告诉我们Group和GroupInfo的定义吗?
  • 它没有像 GroupName 和 GroupDescription 这样的敏感数据

标签: c# entity-framework-6 automapper-5


【解决方案1】:

试试这个MapperConfiguration

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<Group, GroupInfo>();
    cfg.CreateMap<User, UserInfo>();
});

【讨论】:

  • 它有效,但我忘记了在我的组中有用户参考,它也是多对多的关系。所以我忽略了这个成员映射。否则会导致 StackOverflow 异常。这是正常的。所以它存在一些漂亮的方法来解决或选择。忽略是最好的解决方案?
  • 是的,忽略 Group 中的用户引用应该是解决方法。
猜你喜欢
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多