public ModificationFunctionsEndToEndTests()
        {
            // force database initialization, we don't want this to happen inside transaction
            using (var context = new GearsOfWarStoredProceduresContext())
            {
                context.Database.Delete();
                context.Weapons.Count();
            }

            using (var context = new ArubaStoredProceduresContext())
            {
                context.Database.Delete();
                context.Configs.Count();
            }

            using (var context = new FantasyStoredProceduresContext())
            {
                context.Database.Delete();
                context.Creatures.Count();
            }
        }
        public void Update_Aruba_entities_using_stored_procedures()
        {
            using (var context = new ArubaStoredProceduresContext())
            {
                var allTypes = context.AllTypes.OrderBy(a => a.c1_int).First();
                var bug      = context.Bugs.OrderBy(a => a.Id).First();
                var config   = context.Configs.OrderBy(a => a.Id).First();
                var owner    = context.Owners.OrderBy(o => o.Id).First();
                var person   = context.People.OrderBy(p => p.Id).First();
                var run      = context.Runs.OrderBy(r => r.Id).First();
                var task     = context.Tasks.OrderBy(t => t.Id).ThenBy(t => t.Name).First();

                allTypes.c10_float        = 12.5;
                allTypes.c13_varchar_512_ = "Wenn ist das Nunstück git und Slotermeyer?";
                allTypes.c28_date         = new DateTime(2012, 12, 22);
                context.SaveChanges();

                bug.Number     = 42;
                bug.Resolution = ArubaBugResolution.WontFix;
                context.SaveChanges();

                config.Lang = "Hungarian";
                config.OS   = "Win8";
                context.SaveChanges();

                owner.FirstName = "Baltazar";
                owner.LastName  = "Gabka";
                context.SaveChanges();

                person.Name = "Don Pedro";
                context.SaveChanges();

                run.Name = "5K";
                context.SaveChanges();

                task.TaskInfo = new ArubaTaskInfo
                {
                    Failed       = 12,
                    Improvements = 34,
                    Investigates = 56,
                    Passed       = 78,
                };

                context.SaveChanges();
            }

            using (var context = new ArubaStoredProceduresContext())
            {
                var allTypes = context.AllTypes.OrderBy(a => a.c1_int).First();
                var bug      = context.Bugs.OrderBy(a => a.Id).First();
                var config   = context.Configs.OrderBy(a => a.Id).First();
                var owner    = context.Owners.OrderBy(o => o.Id).First();
                var person   = context.People.OrderBy(p => p.Id).First();
                var run      = context.Runs.OrderBy(r => r.Id).First();
                var task     = context.Tasks.OrderBy(t => t.Id).ThenBy(t => t.Name).First();

                Assert.Equal(12.5, allTypes.c10_float);
                Assert.Equal("Wenn ist das Nunstück git und Slotermeyer?", allTypes.c13_varchar_512_);
                Assert.Equal(new DateTime(2012, 12, 22), allTypes.c28_date);
                Assert.Equal(42, bug.Number);
                Assert.Equal(ArubaBugResolution.WontFix, bug.Resolution);
                Assert.Equal("Hungarian", config.Lang);
                Assert.Equal("Win8", config.OS);

                Assert.Equal("Baltazar", owner.FirstName);
                Assert.Equal("Gabka", owner.LastName);
                Assert.Equal("Don Pedro", person.Name);
                Assert.Equal("5K", run.Name);
                Assert.Equal(12, task.TaskInfo.Failed);
                Assert.Equal(34, task.TaskInfo.Improvements);
                Assert.Equal(56, task.TaskInfo.Investigates);
                Assert.Equal(78, task.TaskInfo.Passed);
            }
        }