jjzjj

Automapper

全部标签

c# - 自动映射器创建新实例而不是映射属性

这是一篇很长的文章。因此,我有一个模型和一个View模型,我正在根据AJAX请求进行更新。WebAPIController接收View模型,然后我使用AutoMapper更新现有模型,如下所示:privateUserupdateUser(UserViewModelentityVm){UserexistingEntity=db.Users.Find(entityVm.Id);db.Entry(existingEntity).Collection(x=>x.UserPreferences).Load();Mapper.Map(entityVm,existingEntity);db.Entr

c# - 使用 AutoMapper 将字符串映射到枚举

我有以下类域和Dto类:publicclassProfile{publicstringName{get;set;}publicstringSchoolGrade{get;set;}}publicclassProfileDTO{publicstringName{get;set;}publicSchoolGradeDTOSchoolGrade{get;set;}}publicenumSchoolGradeDTO{[Display(Name="LevelOne"]LevelOne,[Display(Name="LevelTwo"]LevelTwo,}我使用了以下方法:Mapper.Creat

c# - Automapper - 忽略有条件的映射

我正在使用自动映射器,我想知道是否可以在字段为空时忽略该字段的映射。这是我的代码:.ForMember(dest=>dest.BusinessGroup_Id,opt=>opt.MapFrom(src=>(int)src.BusinessGroup))src.BusinessGrouptype="enum"dest.BusinessGroup_Id=int目标是在src.BusinessGroup=null时取消映射。 最佳答案 我认为NullSubstitute选项就可以了.ForMember(d=>d.BusinessGroup

c# - WebAPI Controller 中的自动映射器

我有一个CarWebAPIController方法,如下所示-注意_carService.GetCarData返回CarDataDTO对象的集合[HttpGet][Route("api/Car/Retrieve/{carManufacturerID}/{year}")]publicIEnumerableRetrieveTest(intcarManufacturerID,intyear){//Mapper.Mapvarcars=_carService.GetCarData(carManufacturerID,year);//varreturnData=Mapper.Map();retur

c# - AutoMapper - 为什么使用 Map 而不是 DynamicMap?

假设您使用AutoMapper映射的对象不需要自定义映射,这样做是否有意义:Mapper.CreateMap();//....Mapper.Map(SrcObject,DestObj);如果不需要自定义映射,与仅使用DynamicMap而无需任何预先配置相比,上述方法对您有什么好处吗?Mapper.DynamicMap(SrcObject,DestObj);我知道当你映射匿名类型时DynamicMap是必需的,但我想问的是DyanmicMap是否曾经不推荐不需要自定义映射的静态类型。 最佳答案 自从我上次使用Automapper以来

c# - 你能告诉 AutoMapper 在映射时全局忽略缺失的属性吗?

我有很多实体,到目前为止,我一直在做类似的事情Mapper.CreateMap().ForSourceMember(mem=>mem.NewsPosts,opt=>opt.Ignore());我想告诉AutoMapper忽略目标对象中缺少的属性,而不必指定它们中的每一个。到目前为止,我还没有找到一种方法来使用我的多个SO和Google搜索。有人有解决办法吗?我准备好做某种循环或任何事情,只要它可以一次编写并且它将随着模型/dto更改或添加的属性而扩展。 最佳答案 你什么时候得到错误?是在调用AssertConfigurationIs

c# - AutoMapper.Mapper.CreateMap<TSource,TDestination>()' 已过时

我必须上课喜欢classA{publicintid{get;set;}}classB{publicCc{get;set;}}classC{publicintid{get;set;}publicstringName{get;set;}}我的要求是将A类的id映射到C类的id。到目前为止我所做的是:Mapper.CreateMap().ForMember(des=>des.C.Id,src=>src.MapFrom(x=>x.id));它运行良好。现在似乎Automapper已经更改了它们的实现。我收到如下警告:AutoMapper.Mapper.CreateMap()'isobsolet

c# - 使用 Automapper 导致堆栈溢出的循环引用

我正在使用Automapper将我的NHibernate代理对象(DTO)映射到我的CSLA业务对象我正在使用FluentNHibernate创建映射-这工作正常我遇到的问题是Order有一个OrderLines集合,其中每个都有一个对Order的引用。publicclassOrderMapping:ClassMap{publicOrderMapping(){//StandardpropertiesId(x=>x.OrderId);Map(x=>x.OrderDate);Map(x=>x.Address);HasMany(x=>x.OrderLines).KeyColumn("Orde

c# - LINQ 和 AutoMapper

我想知道我是否可以做些什么来让它按预期工作。这在我的代码中运行良好:varroles=_securityContext.Set();varroleList=newList();foreach(varroleinroles){roleList.Add(Mapper.Map(role));}returnroleList;但将其更改为:varroles=_securityContext.Set();returnroles.Select(role=>Mapper.Map(role)).ToList();导致我以前从未见过的错误:“LINQtoEntities无法识别‘Security.Dto.

c# - 从 View 模型映射到域模型的最佳位置在哪里?

将View模型映射到域模型的最佳位置在哪里?我所说的映射是指从我的EditGrantApplicationViewModel到GrantApplication对象。假设我有以下操作方法(部分代码):[HttpPost]publicActionResultCreate(EditGrantApplicationViewModeleditGrantApplicationViewModel){if(!ModelState.IsValid){returnView("Create",editGrantApplicationViewModel);}returnView("Index");}我是否需要