Created
September 12, 2017 10:06
-
-
Save lbargaoanu/e1d5f819c43a6c2519643aba588300ac to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
static void Main(string[] args) | |
{ | |
Mapper.Initialize(cfg => | |
{ | |
cfg.AllowNullDestinationValues = true; | |
cfg.AllowNullCollections = true; | |
cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention(); | |
cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention(); | |
cfg.RecognizeDestinationPrefixes("DTO_"); | |
cfg.CreateMap<Order, OrderDTO>().ForMember(d=>d.OrderLines,o=>o.ExplicitExpansion()); | |
cfg.CreateMap<OrderLine, OrderLineDTO>(); | |
}); | |
using(var context = new TestContext()) | |
{ | |
context.Orders.ProjectTo<OrderDTO>(o=>o.OrderLines).Dump(); | |
} | |
} | |
public class DatabaseInitializer : DropCreateDatabaseAlways<TestContext> | |
{ | |
protected override void Seed(TestContext context) | |
{ | |
context.Orders.AddRange(new[]{ | |
new Order { OrderID = Guid.NewGuid(), OrderLines = { new OrderLine { OrderLineID = Guid.NewGuid() }, new OrderLine { OrderLineID = Guid.NewGuid() }}}, | |
new Order { OrderID = Guid.NewGuid(), OrderLines = { new OrderLine { OrderLineID = Guid.NewGuid() }, new OrderLine { OrderLineID = Guid.NewGuid() }}}, | |
new Order { OrderID = Guid.NewGuid(), OrderLines = { new OrderLine { OrderLineID = Guid.NewGuid() }, new OrderLine { OrderLineID = Guid.NewGuid() }}}, | |
}); | |
} | |
} | |
public class TestContext : DbContext | |
{ | |
public TestContext() | |
{ | |
//Database.Log = s=>Debug.WriteLine(s); | |
Database.SetInitializer<TestContext>(new DatabaseInitializer()); | |
} | |
public DbSet<Order> Orders { get; set; } | |
} | |
public partial class Order | |
{ | |
public Order() | |
{ | |
this.OrderLines = new HashSet<OrderLine>(); | |
} | |
public System.Guid OrderID { get; set; } | |
public string OrderPlacedBy { get; set; } | |
public Nullable<System.DateTime> PlacedTime { get; set; } | |
public virtual ICollection<OrderLine> OrderLines { get; set; } | |
} | |
public partial class OrderLine | |
{ | |
public System.Guid OrderLineID { get; set; } | |
public Nullable<System.Guid> OrderID { get; set; } | |
public Nullable<double> Amount { get; set; } | |
public virtual Order Order { get; set; } | |
} | |
public partial class OrderDTO | |
{ | |
public OrderDTO() | |
{ | |
this.OrderLines = new HashSet<OrderLineDTO>(); | |
} | |
public System.Guid OrderID { get; set; } | |
public string DTO_OrderPlacedBy { get; set; } | |
public Nullable<System.DateTime> DTO_PlacedTime { get; set; } | |
public virtual ICollection<OrderLineDTO> OrderLines { get; set; } | |
} | |
public partial class OrderLineDTO | |
{ | |
public System.Guid OrderLineID { get; set; } | |
public Nullable<System.Guid> OrderID { get; set; } | |
public Nullable<double> DTO_Amount { get; set; } | |
public virtual OrderDTO Order { get; set; } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment