public static void DemoDeferredLoading() {
Console.Write("DeferredLoadingEnabled=true ");
DemoDeferredLoading(true);
Console.Write("DeferredLoadingEnabled=false ");
DemoDeferredLoading(false);
Console.Write("Using LoadOptions ");
DemoLoadWith();
}

static void DemoDeferredLoading(bool deferredLoadingEnabled) {
nwDataContext db = new nwDataContext(Connections.ConnectionString);
db.DeferredLoadingEnabled = deferredLoadingEnabled;

QueryOrder(db);
}

static void DemoLoadWith() {
nwDataContext db = new nwDataContext(Connections.ConnectionString);
db.DeferredLoadingEnabled = false;

DataLoadOptions loadOptions = new DataLoadOptions();
loadOptions.LoadWith<Order>(o => o.Order_Details);
db.LoadOptions = loadOptions;

QueryOrder(db);
}

static void QueryOrder(nwDataContext db) {
var order = db.Orders.Single((o) => o.OrderID == 10251);
var orderValue = order.Order_Details.Sum(od => od.Quantity * od.UnitPrice);
Console.WriteLine(orderValue);
}
