public static void Demo_CreateRelatedObjects()
        {
            CUI.MainHeadline(nameof(Demo_CreateRelatedObjects));
            using (var ctx = new WWWingsContext())
            {
                ctx.Database.ExecuteSqlCommand("Delete from Booking where FlightNo = 456789");
                ctx.Database.ExecuteSqlCommand("Delete from Flight where FlightNo = 456789");

                var p = new Pilot();
                p.GivenName   = "Holger";
                p.Surname     = "Schwichtenberg";
                p.HireDate    = DateTime.Now;
                p.LicenseDate = DateTime.Now;
                var pd = new Persondetail();
                pd.City    = "Essen";
                pd.Country = "DE";
                p.Detail   = pd;

                var act = new AircraftType();
                act.TypeID       = (byte)(ctx.AircraftTypeSet.Max(x => x.TypeID) + 1);
                act.Manufacturer = "Airbus";
                act.Name         = "A380-800";
                ctx.AircraftTypeSet.Add(act);
                ctx.SaveChanges();

                var actd = new AircraftTypeDetail();
                actd.TurbineCount = 4;
                actd.Length       = 72.30f;
                actd.Tare         = 275;
                act.Detail        = actd;

                var f = new Flight();
                f.FlightNo     = 456789;
                f.Pilot        = p;
                f.Copilot      = null;
                f.Seats        = 850;
                f.FreeSeats    = 850;
                f.AircraftType = act;

                // One Add() is enough for all related objects!
                ctx.FlightSet.Add(f);
                ctx.SaveChanges();

                CUI.Print("Total number of flights: " + ctx.FlightSet.Count());
                CUI.Print("Total number of pilots: " + ctx.PilotSet.Count());
            }
        }
        public static void EinfachesUpdate()
        {
            // Set up demo: Create 1 flight type and 3 flights
            using (WWWingsContext ctx = new WWWingsContext())
            {
                if (!ctx.AircraftTypeSet.Any())
                {
                    var ft = new AircraftType();
                    ft.TypeID       = 1;
                    ft.Manufacturer = "Airbus";
                    ft.Name         = "A320";
                    ctx.AircraftTypeSet.Add(ft);
                    var anz1 = ctx.SaveChanges();
                    Console.WriteLine("New aircrafttypes: " + anz1);
                }
                var ft2 = ctx.AircraftTypeSet.FirstOrDefault();
                ctx.Log();

                if (!ctx.FlightSet.Any(f => f.Departure == "Amsterdam"))
                {
                    var p = new Pilot();
                    p.GivenName   = "Holger";
                    p.Surname     = "Schwichtenberg";
                    p.HireDate    = DateTime.Now;
                    p.LicenseDate = DateTime.Now;
                    var pd = new Persondetail();
                    //pd.Planet = "Erde";
                    p.Detail = pd;

                    var maxflightNo = ctx.FlightSet.Max(x => x.FlightNo);
                    for (int i = 0; i < 3; i++)
                    {
                        var f = new Flight();
                        f.Pilot        = p;
                        f.FlightNo     = maxflightNo + i;
                        f.Departure    = "Amsterdam";
                        f.Destination  = "Bucharest";
                        f.Seats        = 100;
                        f.FreeSeats    = 100;
                        f.Date         = DateTime.Now.AddDays(i);
                        f.AircraftType = ft2;
                        ctx.FlightSet.Add(f);
                        var anz2 = ctx.SaveChanges();
                        Console.WriteLine("New flights: " + anz2);
                    }
                }

                foreach (var f in ctx.FlightSet.Where(f => f.Departure == "Amsterdam").ToList())
                {
                    f.AircraftType = ft2;
                    var anz3 = ctx.SaveChanges();
                    Console.WriteLine("Neu aircraft type assigment: " + anz3);
                }
            }


            CUI.Headline("Delete with dependent objects of the N-side in RAM");
            using (WWWingsContext ctx = new WWWingsContext())
            {
                ctx.Log();
                Console.WriteLine("Total number of flights: " + ctx.FlightSet.Count());

                var ft = ctx.AircraftTypeSet.FirstOrDefault();
                //var ft = ctx.AircraftTypeSet.Include(x=>x.FlightSet).FirstOrDefault();
                ctx.FlightSet.Where(f => f.AircraftTypeID == ft.TypeID).ToList();
                ctx.ChangeTracker.DetectChanges();
                Console.WriteLine("Flights with this aircraft type: " + ft.FlightSet.Count);
                CUI.Print("Remove aircraft type now...", ConsoleColor.Red);
                ctx.AircraftTypeSet.Remove(ft);
                var anz1 = ctx.SaveChanges();
                Console.WriteLine("Number of saved changes: " + anz1);
                Console.WriteLine("Total number of flights: " + ctx.FlightSet.Count());
            }
        }