Skip to content

Instantly share code, notes, and snippets.

@ferventcoder
Created March 7, 2012 22:05
Show Gist options
  • Select an option

  • Save ferventcoder/1996547 to your computer and use it in GitHub Desktop.

Select an option

Save ferventcoder/1996547 to your computer and use it in GitHub Desktop.
Automapper config
// one way mapping shown for clarity sake and lots of ForMember() relationships removed
public class AutoMapperProfileWeb : Profile
{
public override string ProfileName
{
get { return "SomeApp.Web"; }
}
protected override void Configure()
{
Mapper.CreateMap<TheEvent, EventModel>()
;
Mapper.CreateMap<Order, OrderModel>()
;
Mapper.CreateMap<OrderLine, OrderLineModel>()
;
Mapper.CreateMap<Item, ItemModel>()
;
}
}
public class TheEvent : BaseDomainObject<long>
{
public TheEvent()
{
Orders = new HashSet<Order>();
}
public DateTime EventDate { get; set; }
public string Location { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
public class Order : BaseDomainObject<long>
{
public Order()
{
OrderLines = new HashSet<OrderLine>();
}
public DateTime OrderDate { get; set; }
public virtual Event Event { get; set; }
public long EventId { get; set; }
public virtual ICollection<OrderLine> OrderLines { get; set; }
}
public class OrderLine : BaseDomainObject<long>
{
public virtual Item Item { get; set; }
public long ItemId { get; set; }
public int Quantity { get; set; }
public virtual Order Order { get; set; }
public long OrderId { get; set; }
}
public class Item : BaseDomainObject<long>
{
public string Name { get; set; }
public string Description { get; set; }
}
// lots of stuff removed for brevity
public class EventModel : IModel
{
public long Id { get; set; }
public EventModel()
{
Orders = new HashSet<OrderModel>();
}
public ICollection<OrderModel> Orders { get; set; }
public DateTime EventDate { get; set; }
public string Location { get; set; }
}
public class OrderModel : IModel
{
public OrderModel()
{
OrderLines = new HashSet<OrderLineModel>();
}
public long Id { get; set; }
public long EventId { get; set; }
public DateTime OrderDate { get; set; }
public virtual ICollection<OrderLineModel> OrderLines { get; set; }
public EventModel Event { get; set; }
}
public class OrderLineModel : IModel
{
public long Id { get; set; }
public int Quantity { get; set; }
public ItemModel Item { get; set; }
public long ItemId { get; set; }
}
public class ItemModel : IModel
{
public long Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
@ferventcoder
Copy link
Copy Markdown
Author

Workaround for now:

    public class EventIndexViewModel : EventModel
    {
    }

    Mapper.CreateMap<TheEvent, EventIndexViewModel>()
                .ForMember(dest => dest.Orders, opt => opt.Ignore())
                ;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment