Tag: #automapper

使用Automapper将DTO映射到实体

我有一个具有以下结构的entity frameworkPOCO。 public class Entity { public virtual int Id { get; set; } public virtual string Name { get; set; } } 我为这个实体创建了一个数据传输对象供我的视图使用。 public class EntityDto { public int Id { get; set; } public string Name { get; set; } } 现在,我在Global.asax文件中有以下映射代码。 Mapper.CreateMap(); Mapper.CreateMap(); // not sure whether I need this as well? […]

简单的自动化示例

我很难理解如何映射某些对象。 请回答一些关于这个简单示例的问题。 示例代码 class User { private int id; private string name; } class Group { private int id; private string name; private List users; } [DataContract] public class UserDto { [DataMember] public int id { get; set; } [DataMember] public string name{ get; set; } } [DataContract] public class GroupDto { [DataMember] public int […]

如何使用AutoMapper将Dto映射到具有嵌套对象的现有对象实例?

我有以下Dto和实体与嵌套的子实体。 public class Dto { public string Property { get; set; } public string SubProperty { get; set; } } public class Entity { public string Property { get; set; } public SubEntity Sub { get; set; } } public class SubEntity { public string SubProperty { get; set; } } 如何使用AutoMapper设置映射,这将允许我使用Dto中的值更新现有的Entity实例。 我正在使用Mapper.Map(dto, entity)更新现有实体但是当我尝试将Dto.SubProperty映射到Entity.Sub.SubProperty我得到一个例外, “必须解析为顶级成员。参数名称:lambdaExpression […]

可以使用AutoMapper将一个对象映射到对象列表吗?

这些是我的课程: public class EventLog { public string SystemId { get; set; } public string UserId { get; set; } public List Events { get; set; } } public class Event { public string EventId { get; set; } public string Message { get; set; } } public class EventDTO { public string SystemId { get; […]

Automapper:忽略条件

是否可以忽略根据源属性的值映射成员? 例如,如果我们有: public class Car { public int Id { get; set; } public string Code { get; set; } } public class CarViewModel { public int Id { get; set; } public string Code { get; set; } } 我正在寻找类似的东西 Mapper.CreateMap() .ForMember(dest => dest.Code, opt => opt.Ignore().If(source => source.Id == 0)) 到目前为止,我唯一的解决方案是使用两个不同的视图模型,并为每个模型创建不同的映射。

使用自定义解析程序跳过空值

我想使用automapper在我的公共数据协定和我的数据库模型之间进行映射。 我创建了一个自动完成所有契约的类创建映射。 我唯一的问题是,如果值不为null,我只想将合同中的值映射到数据库模型。 我在这里看了其他问题但是看不到使用自定义解析器的示例。 这是我的一些代码 var mapToTarget = AutoMapper.Mapper.CreateMap(contract, mappedTo); foreach (var property in contract.GetProperties().Where(property => property.CustomAttributes.Any(a => a.AttributeType == typeof(MapsToProperty)))) { var attribute = property.GetCustomAttributes(typeof(MapsToProperty), true).FirstOrDefault() as MapsToProperty; if (attribute == null) continue; mapToTarget.ForMember(attribute.MappedToName, opt => opt.ResolveUsing() .ConstructedBy(() => new ContractToSourceResolver(new MapsToProperty(property.Name, attribute.SourceToContractMethod, attribute.ContractToSourceMethod)))); } private class ContractToSourceResolver : ValueResolver { private MapsToProperty Property […]