Tag: #automapper

如何忽略标记为虚拟的所有属性

我正在使用virtual关键字来获取EF延迟加载的一些属性。 我有一个案例,在将源映射到目标时,应该从AutoMapper中忽略我的模型中标记为virtual所有属性。 是否有自动方式可以实现此目的,还是应该手动忽略每个成员?

使用AutoMapper将IList 映射到(Iesi.Collections.Generic)ISet

我一直试图解决这个问题一天,没有在哪里,所以我希望有人可能已经解决了这个问题。 我发现最接近解决方案的是如何使用AutoMapper简单地将NHibernate ISet映射到IList并通过AutoMapper 将IList 映射到ICollection但仍然没有乐趣。 我有一个数据对象,看起来像: public class Parent { public virtual ISet Children {get; set; } } 以及如下所示的业务对象: public class ParentDto { public IList Children {get; set; } } 使用AutoMapper从数据映射到业务工作正常: … Mapper.CreateMap(); Mapper.CreateMap(); … ParentDto destination = CWMapper.Map(source); 但是,当我从业务映射到数据时,我得到错误: … Mapper.CreateMap(); Mapper.CreateMap(); … Parent destination = CWMapper.Map(source); 无法将’System.Collections.Generic.List’类型的对象强制转换为”Iesi.Collections.Generic.ISet’ 我添加了一个自定义映射: Mapper.CreateMap() .ForMember(m => m.Children, o […]

使用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()); 当我运行应用程序时,我收到错误: 仅对类型上的顶级单个成员支持成员的自定义配置。 我究竟做错了什么?

使用DynamicMap()并忽略空源值

我在generics方法中使用.CreateMap() ,并希望在不使用.CreateMap()忽略一些null的源值。 这有可能吗?

AutoMapper 5.2如何配置

配置AutoMapper以供全局使用的正确方法是什么。 我想将它设置一次,然后在应用程序中使用。 我有一种强烈的感觉,这是错误的。 事实上,我知道这是错误的,因为这会调用一个新实例。 我想要一个全局配置然后你怎么称呼它。 找不到一个好例子! 这就是我所拥有的:但它不是我想要的 public static class AutoMapperConfig { public static IMapper GetMapper() { var config = new MapperConfiguration(cfg => { cfg.CreateMap(); //lots more maps…? }); IMapper mapper = config.CreateMapper(); return mapper; } } 然后用法: var imapper = AutoMapperConfig.GetMapper(); var dest = imapper.Map(logo); UPDATE基于:pinkfloydx33 调用一次,然后配置完成。 public static class AutoMapperConfig { public static […]

在相同的两个对象类型之间创建两个Automapper映射

我在WCF服务中使用AutoMapper来返回User对象。 User具有诸如AccountTeams属性,其本身具有子对象。 所有类都有AutoMapper映射。 根据调用的WCF OperationContract ,我想返回不同数量的数据。 我想要一个OperationContract返回User对象,而不填充其AccountTeams属性(及其子代),另一个OperationContract返回User ,并填写整个属性链。 有没有办法在同一个两个对象之间有两个不同的映射,或者我是否需要执行完整映射并null我不想从服务返回的属性?

如何在AutoMapper中处理自定义属性

我有一个ViewModel,它接受一些Model数据并略微改变它。 我这样做的方式“有效”,因为我只是将DomainModel传递给ViewModel的构造函数,但由于我在一些一对一的ViewModel上使用AutoMapper,我想我会尝试学习如何在所有ViewModel上进行映射。 这是ViewModel的一个例子,它可以做一些额外的工作。 public class UsersDetailsViewModel { public string UserName { get; set; } public string Email { get; set; } public string Website { get; set; } public int ID { get; set; } public List OpenIds { get; set; } public string UserAge { get; set; } public string About { get; set; […]

是否可以使用Automapper将多个DTO对象映射到单个ViewModel?

我想知道是否可以使用Automapper将多个DTO对象映射到单个ViewModel对象? 本质上,我有多个DTO对象,并希望在ASP.NET MVC 2.0中的单个屏幕上显示每个对象的信息。 为此,我想将DTO对象(或其中的一部分……)展平到Viewmodel中,并将所述viewmodel传递给视图。 如果我有一个DTO,这将很容易,但我从来没有看到它完成多个。 显然,有很多迂回的方法可以做到这一点(在automapper之外),但这是我想要的方法,如果可能的话。

AutoMapper如何将对象A映射到对象B,这取决于上下文

召唤所有AutoMapper大师! 我希望能够根据运行时的上下文以不同方式将对象A映射到对象B. 特别是,我想在一个映射的情况下忽略某些属性,并在另一个案例中映射所有属性。 我所经历的是Mapper.CreateMap可以在不同的映射情况下成功调用,但是,一旦调用了CreateMap,就会设置特定的一对类型的映射,并且随后的CreateMap调用不会改变它,这可能会描述映射不同。 我找到了一篇博文,主张Mapper.Reset()来解决这个问题,然而,Mapper类的静态特性意味着碰撞和崩溃发生只是时间问题。 有没有办法做到这一点? 我认为我需要的是每个appdomain调用Mapper.CreateMap一次,然后,能够调用Mapper.Map,提示应该包含/排除哪些属性。 现在,我正在考虑通过编写一个包含映射配置实例的非静态映射类来更改源代码。 性能不佳,但线程安全。 我有什么选择。 可以做些什么? Automapper似乎很有前途。

使用AutoMapper映射集合

我正在尝试将数组映射到类型.的ICollection . 基本上我希望能够做到: Mapper.CreateMap(); 其中Y是Collection 有任何想法吗?