Tag: automapper 2

使用密钥将列表映射到Automapper中的现有列表

Automapper可以轻松处理将一个对象类型列表映射到另一个不同对象类型的列表,但是是否可以使用ID作为键将其映射到现有列表?

AutoMapper – 为什么要覆盖整个对象?

我不明白为什么它会覆盖我的整个对象。 原因是我从db获取了我的User对象,我想从DTO分配新值。 它不是仅仅添加这些新值,而是创建具有新值但前面所有值都设置为null新对象。 我怎样才能确保在这种情况下他会“升级”我的对象,而不是创建新对象? 脚本 /users/{id} – PUT // User has id, username, fullname // UserPut has fullname public HttpResponseMessage Put(int id, UserPut userPut) { var user = _db.Users.SingleOrDefault(x => x.Id == id); // filled with properties Mapper.CreateMap(); user = Mapper.Map(userPut); // now it has only “fullname”, everything else set to null // I can’t […]

自动映射从一个对象到嵌套对象的映射

使用Automapper 2.0映射内部对象的最佳方法是什么? 使用此问题中的解决方案(Automapper 1.0) 创建自定义值解析器 ? public class DTOObject { // MainObject public int Id { get; set; } public string Name { get; set; } // SubObject (TopObject) public string TopText { get; set; } public string TopFont { get; set; } // SubObject (BottomObject) public string BottomText { get; set; } public string […]

使用AutoMapper中的上下文值进行投影

我目前正在评估AutoMapper是否对我们的项目有益。 我正在使用ASP.NET Web API开发RESTful Web API,我必须返回的一个内容是包含链接的资源。 考虑这个简化的示例,使用以下域对象: public class Customer { public string Name { get; set; } } 我需要将它映射到一个资源对象,有点像DTO,但增加了属性以方便REST。 这是我的资源对象可能是这样的: public class CustomerResource { public string Name { get; set; } public Dictionary Links { get; set; } } Links属性需要包含相关资源的链接。 现在,我可以使用以下方法构建它们: public IEnumerable Get() { Func map = customer => new CustomerResource { Name […]

我是否正确使用Automapper 2.0的Includefunction?

我不是,或者它不工作……我有一个Source类,我想要映射到彼此inheritance的多个视图。 基本类是Detail,子类是Edit或Update,它使用与Detail相同的所有数据,还有一些其他字段来管理自己的列表或其他。 这是我正在使用的地图: Mapper.CreateMap() .Include() .Include() .ForMember(dest => dest.Priority, opt => opt.MapFrom(src => src.Priority.Code)) .ForMember(dest => dest.TicketID, opt => opt.MapFrom(src => src.ID)) .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.StatusCode)) .ForMember(dest => dest.Category, opt => opt.MapFrom(src => src.ProblemCategoryCode)) .ForMember(dest => dest.crmBusCode, opt => opt.MapFrom(src => src.Company.crmBusCode)) .ForMember(dest => dest.TeamMembers, opt => opt.MapFrom(src => src.Schedules.Where(s => […]

AutoMapper使用错误的构造函数

今天我使用AutoMapper v1.1升级了一个function齐全的应用程序,现在使用AutoMapper v2.1,我遇到了一些我以前从未遇到的问题。 这是我的代码从Dto映射回Domain对象的示例 public class TypeOne { public TypeOne() { } public TypeOne(TypeTwo two) { //throw ex if two is null } public TypeOne(TypeTwo two, TypeThree three) { //throw ex if two or three are null } public TypeTwo Two {get; private set;} public TypeThree Three {get; private set;} } public class TypeOneDto { […]

如何在类库项目中配置Auto mapper?

我是第一次使用自动映射。 我正在研究c#应用程序,我想使用自动映射器。 (我只是想知道如何使用它,所以我没有asp.net应用程序既不是MVC应用程序。) 我有三个类库项目。 我想在服务项目中编写转移过程。 所以我想知道如何以及在哪里配置Auto Mapper?

AutoMapper – inheritance映射不​​起作用,相同的源,多个目标

我可以在AutoMapper(v2.2)中使用具有相同Source类型但不同Destination类型的映射的inheritance映射吗? 我有这个基本情况(真正的类有更多的属性): public abstract class BaseViewModel { public int CommonProperty { get; set;} } public class ViewModelA : BaseViewModel { public int PropertyA { get; set; } } public class ViewModelB : BaseViewModel { public int PropertyB { get; set; } } ViewModelA和ViewModelB是同一个Entity类的不同表示: public class Entity { public int Property1 { get; set; } public […]

使用AutoMapper将对象的属性映射到字符串

我有以下型号: public class Tag { public int Id { get; set; } public string Name { get; set; } } 我希望能够使用AutoMapper将Tag类型的Name属性映射到我的一个viewmodel中的字符串属性。 我已经创建了一个自定义解析器来尝试使用以下代码来处理此映射: public class TagToStringResolver : ValueResolver { protected override string ResolveCore(Tag source) { return source.Name ?? string.Empty; } } 我使用以下代码进行映射: Mapper.CreateMap() .ForMember(d => d, o => o.ResolveUsing()); 当我运行应用程序时,我收到错误: 仅对类型上的顶级单个成员支持成员的自定义配置。 我究竟做错了什么?

AutoMapper和展平嵌套数组

我正在尝试使用AutoMapper来压缩多个级别的数组。 考虑以下源类: class X { public string A { get; set; } public Y[] B { get; set; } } class Y { public string C { get; set; } public Z[] D { get; set; } } class Z { public string E { get; set; } public string F { get; set; } […]