Tag: #automapper

如何使用AutoMapper避免循环引用?

我有以下模型(和相应的DTO): public class Link { public int Id {get; set;} public int FirstLinkId {get; set;} public int SecondLinkId {get; set;} public virtual Link FirstLink {get; set;} public virtual Link SecondLInk {get; set;} } public class OtherObject { public int Id {get; set;} public int LinkId {get; set;} public string Name {get; set;} public virtual Link […]

将平面JSON / Dictionary映射到模型(包含子类)

我想将一个扁平的json字符串转换为一个模型,目标类具有子类,而扁平的json具有带前缀的所有子类对象; 比如“{classname}。{property}”。 { “FirstName”: “Joey”, “LastName”: “Billy”, “EmploymentDetails.JobTitle”: “JobTitle”, “EmploymentDetails.StartDate”: “2015-01-01T00:00:00”, “ContactDetails.HouseNumberName”: “10”, “ContactDetails.Road”: “Road” } 这是我的目的地类: public class Person { public string FirstName { get; set; } public string LastName { get; set; } public virtual EmploymentDetails EmploymentDetails { get;set;} public virtual ContactDetails ContactDetails { get;set;} } public class EmploymentDetails { public string JobTitle […]

如何使用automapper映射具有多个表的数据集

免责声明:这是一个旧的stackoverflowpost的副本粘贴,不再可用,但我有同样的问题,所以它似乎适合重新发布它,因为它从来没有回答。 我有一个存储过程将返回4个结果集(联系人,地址,电子邮件,电话),这些结果集填充到数据集中。 我想使用AutoMapper来填充复杂的对象。 public class Contact { public Guid ContactId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public List Addresses { get; set; } public List Phones { get; set; } public List Emails { get; set; } } public partial class Address:BaseClass { […]

Automapper – 将多对多关联映射到平面对象的最佳实践

我有两个实体: Employee和Team 。 我想要的是一个拥有Team Name的EmployeeForm 。 如何使用AutoMapper实现此目的? 我目前的“解决方案”如下: Mapper.CreateMap() .ForMember(dest => dest.TeamName, opt => opt.MapFrom(x => x.GetTeams().FirstOrDefault() != null ? string.Join(“, “, x.GetTeams().Select(y=>y.Name)) : “n/a”)); 在我看来,这是可读的。 我想要的是一个generics方法,我可以传递一个实体,选择集合并说集合是否为null返回默认值,或者通过lambda表达式选择集合的属性。

如何使用AutoMapper将多个子类映射到一个类?

假设我有三个类是基类的子类: public class BaseClass { public string BaseName { get; set; } } public class Subclass1 : BaseClass { public string SubName1 { get; set; } } public class Subclass2 : BaseClass { public string SubName2 { get; set; } } public class Subclass3 : BaseClass { public string SubName3 { get; set; } } […]

Automapper null属性

我使用Automapper将对象映射到dtos。 public class OrderItem : BaseDomain { public virtual Version Version { get; set; } public virtual int Quantity { get; set; } } [DataContract] [Serializable] public class OrderItemDTO { [DataMember] public int Id { get; set; } [DataMember] public string Guid { get; set; } [DataMember] public virtual int? VersionId { get; set; } […]

用简单的注射器替换Ninject

我已经将Ninject用于我的应用程序。 Ninject非常简单易学,但速度很慢,我尝试使用另一个IoC来比较它是否比Ninject更快。 MVC3和Simple Injector有很多IoC容器看起来对我很好,但是我在使用Simple Injector重新替换Ninject时遇到了很多问题。 特别是使用AutoMapper 。 我尝试将这些行转换为Simple Injector代码。 Bind().To(); foreach (var mapper in MapperRegistry.AllMappers()) { Bind().ToConstant(mapper); } Bind().ToSelf().InSingletonScope() .WithConstructorArgument(“mappers”, ctx => ctx.Kernel.GetAll()); Bind() .ToMethod(ctx => ctx.Kernel.Get()); Bind().ToMethod(ctx => ctx.Kernel.Get()); Bind().To() 你能帮帮我吗? 我已经阅读了文档和Google搜索,但到目前为止还没有解决方案。

AutoMapper.Mapper.CreateMap ()’已过时

我必须上课 class A { public int id {get; set;} } class B { public C c {get; set;} } class C { public int id {get; set;} public string Name {get; set;} } 我的要求是将类A的id映射到类C的id。现在我所做的是:Mapper.CreateMap()。ForMember(des => des.C.Id,src => src.MapFrom(x = > x.id)); 它工作正常。 现在看来,Auto mapper已经改变了它们的实现。 我收到的警告如下: AutoMapper.Mapper.CreateMap()’已过时:’将在5.0版中删除动态创建地图。 使用MapperConfiguration实例并根据需要静态存储,或Mapper.Initialize。 使用CreateMapper创建映射器实例。 我需要映射具有不同名称和结构的类的一些属性。 对此有任何帮助。

LINQ和AutoMapper

我想知道我能做些什么来让它按预期工作。 这在我的代码中工作正常: var roles = _securityContext.Set(); var roleList = new List(); foreach (var role in roles) { roleList.Add(Mapper.Map(role)); } return roleList; 但改为: var roles = _securityContext.Set(); return roles.Select(role => Mapper.Map(role)).ToList(); 导致我以前没见过的错误: “LINQ to Entities无法识别方法’Security.Dto.RoleDto MapRole,RoleDto’方法,并且此方法无法转换为商店表达式” 我不确定我是否能对这个’问题’做任何事情……可以说无论如何,有效的方法更具可读性……

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 […]