private static void ExplicitLoading() { using (var context = new QueryingContext()) { context.Database.Initialize(true); context.Database.Log = Log; foreach (var order in context.Orders) { var orderEntry = context.Entry(order); if (!orderEntry.Collection(o => o.OrderLines).IsLoaded) { Console.WriteLine($"Loading order lines for order #{order.Id}..."); orderEntry.Collection(o => o.OrderLines).Load(); } foreach (var orderLine in order.OrderLines) { var orderLineEntry = context.Entry(orderLine); if (!orderLineEntry.Reference(ol => ol.Product).IsLoaded) { Console.WriteLine($"Loading product for order line #{orderLine.Id}..."); orderLineEntry.Reference(ol => ol.Product).Load(); Console.WriteLine($"Product {orderLine.Product.Name} loaded"); } Console.WriteLine($"Order line #{orderLine.Id} of order {order.Id} has the product {orderLine.Product.Name}"); } } context.SaveChanges(); } }
private static void CreateOrder() { using (var context = new QueryingContext()) { context.Orders.Add(new Order()); context.SaveChanges(); } }