Tag: #automapper

使用Automapper进行深层映射

我试图用多级成员映射对象:这些是类: public class Father { public int Id { get; set; } public Son Son { get; set; } } public class FatherModel { public int Id { get; set; } public int SonId { get; set; } } public class Son { public int Id { get; set; } } 这是我尝试自动化它的方式: AutoMapper.Mapper.CreateMap() .ForMember(dest => […]

自动映射:将JSON转换为对象列表

源对象(JSON,如果重要的话,使用JSON.NET): { “conum” : 1001, “name” : “CLN Industries Corporation”, “agencyName” : “Murphy, Holmes & Associates, LLC”, “sAA” : [{ “code” : 247, “description” : “Mechanic\u0027s lien – Bond to Discharge – Fixed penalty – where principal has posted Performance and Pa” }, { “code” : 277, “description” : “Mechanic\u0027s lien – Bond to Discharge […]

使用AutoMapper来展平嵌套对象的更好方法是什么?

我已经将域对象展平为DTO,如下例所示: public class Root { public string AParentProperty { get; set; } public Nested TheNestedClass { get; set; } } public class Nested { public string ANestedProperty { get; set; } } public class Flattened { public string AParentProperty { get; set; } public string ANestedProperty { get; set; } } // I put the […]

在IQueryable上调用ProjectTo ()时,AutoMapper抛出StackOverflowException

我使用EF Code First创建了具有彼此集合的类。 实体: public class Field { public int Id { get; set; } public string Name { get; set; } public virtual List Teachers { get; set; } public Field() { Teachers = new List(); } } public class AppUser { public int Id { get; set; } public string Email { get; […]

如何使用Automapper构造没有默认构造函数的对象

我的对象没有默认构造函数,它们都需要签名 new Entity(int recordid); 我添加了以下行: Mapper.CreateMap().ConvertUsing(s => new Entity(s.RecordId)); 这解决了Automapper期望默认构造函数的问题,但是映射的唯一元素是记录ID。 如何让它了解它的正常映射? 如何在不必手动映射属性的情况下获取要映射的实体的所有属性?

如何在Automapper 6中映射期间忽略所有源成员的空值?

我一直在寻找各处:stackoverflow,automapper文档,互联网,只是找不到这方面的任何信息,即使这似乎是一个非常普遍的问题。 我的映射: CreateMap() .ForAllMembers(opt => opt.Condition(src => src != null)); 这不起作用,因为src表示源对象(StatusLevelDTO),而不是源属性(我认为)。 更具体地说,如果我将ObjectA映射到ObjectB,ObjectA.SomeValue为null而ObjectB.SomeValue为2,我希望目标对象保持其值(2)。 我已经看到了这个问题: Automapper使用自定义解析器跳过空值并尝试了前两个答案,但它们似乎都已过时版本6。 有没有办法在Automapper 6中实现这一点? 我准确地使用6.0.2。

使用CreateMap的实例版本和使用WCF服务映射?

与automapper有一些实际问题。 我想我找到了解决方案但不确定如何实现它。 基本上我使用ResolveUsing和ConstructedBy的自定义映射将params传递给构造函数,我知道大多数人在global.asax中设置了一次而忘记了它。 但问题是我的方法(在wcf上)将不同的参数传递给ResolveUsing的构造函数…… 在我使用静态方法的Mapper.CreateMap和Mapper.Map之前,看来当不同的请求通过方法(多用户)进入wcf服务时,它们彼此冲突。 看完之后,我可以使用CreateMap和Map的实例版本,这样每个请愿书都可以获得自己的地图并传入自己的参数。 但我似乎无法找到如何做到这一点。 谁能解释一下吗? 我真的被困了…… 在一次又一次之前,我会得到重复的键错误,并且我在构造函数上添加了一个日志跟踪,看起来1请求覆盖了另一个 – 因此是静态版本的Mapper。 好吧,我希望我是对的,但我找不到别的…… 编辑 – 我有什么例子 基本上所有映射都正常工作,因为我在大多数情况下使用MapFrom。 然后我创建一个我的Resolver实例,我在URL中传递。 在我传递之前我检查了url并且它是正确的。 但是一旦它返回它就会返回错误的URL。 我需要在URL中传递的原因是它有变量,所以我需要替换变量…基本上有两个url取决于办公室,我到处都有日志,我可以看到我传递的内容但是一次我把它传递进去 – 它不是我传入的那个,如果这是有道理的,这很奇怪! 它是一个WCF服务和一个客户端调用该方法两次通过2个不同的办公室,因此2个不同的URL。 但是它们总是返回相同的URL。 就好像一个会话正在覆盖另一个会话…… 我希望这是有道理的。 SalesPointResolver newSalesPointResolver = new SalesPointResolver(returnReservationUrl, reservationSite.ReservationUrl, startDate, endDate, officeCode); Mapper.CreateMap() .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id)) .ForMember(dest => dest.TaxIncluded, opt => opt.MapFrom(src => src.Segments.FirstOrDefault().TaxIncluded)) .ForMember(dest => […]

将对象传递给AutoMapper映射

我正在使用AutoMapper,正在映射的实体的一些值是我当前方法中的变量。 我试过谷歌它但无济于事。 我可以将一组KeyValue对或一个对象或东西传递给我的映射以使其使用这些值吗? 后映射修改的示例 //comment variable is a Comment class instance var imageComment = AutoMapper.Mapper.Map(comment); //I want to pass in imageId so I dont have to manually add it after the mapping imageComment.ImageId = imageId;

AutoMapper从静态API迁移

https://github.com/AutoMapper/AutoMapper/wiki/Migrating-from-static-API 这一改变打破了我的体制。 在更新之前,我使用: ===> Startup.cs public class Startup { public Startup(IHostingEnvironment env) { … MyAutoMapperConfiguration.Configure(); } } ===> MyAutoMapperConfiguration.cs public class MyAutoMapperConfiguration { public static void Configure() { Mapper.Initialize(a => { a.AddProfile(); a.AddProfile(); a.AddProfile(); }); } } ===> AbcMappingProfile.cs public class AbcMappingProfile : Profile { protected override void Configure() { Mapper.CreateMap(); Mapper.CreateMap(); … } } […]

在ASP.NET MVC 3中使用视图模型

我对查看模型比较新,我遇到了一些使用它们的问题。 这是一种情况,我想知道最佳做法是什么…… 我将视图所需的所有信息都放入视图模型中。 这是一个例子 – 请原谅任何错误,这是我的头顶编码。 public ActionResult Edit(int id) { var project = ProjectService.GetProject(id); if (project == null) // Something about not found, possibly a redirect to 404. var model = new ProjectEdit(); model.MapFrom(project); // Extension method using AutoMapper. return View(model); } 如果屏幕只允许编辑一个或两个字段,当视图模型返回时,它会丢失相当多的数据(应该是这样)。 [HttpPost] public ActionResult Edit(int id, ProjectEdit model) { var project = […]