public void TPT_SubType_NotFirst()
        {
            using (var ctx = GetContext())
            {
                var managerTable = ctx.Set <ManagerTPT>();
                var manager      = managerTable.FirstOrDefault(i => i.Id == 1);
                if (manager == null)
                {
                    manager = new ManagerTPT
                    {
                        Id       = 1,
                        Name     = "The boss",
                        Rank     = "High",
                        JobTitle = "The manager"
                    };

                    managerTable.Add(manager);
                    ctx.SaveChanges();
                }

                var employees = new List <WorkerTPT>();

                var worker = new WorkerTPT {
                    JobTitle = "Worker", Name = "Foo", Boss = manager
                };
                employees.Add(worker);

                ctx.BulkInsert(employees);

                var dbWorker = ctx.WorkerTpts.OrderByDescending(x => x.Id).First();

                Assert.AreEqual(worker.JobTitle, dbWorker.JobTitle);
                Assert.AreEqual(worker.Name, dbWorker.Name);
            }
        }
        public void TPT_SubType_First()
        {
            using (var ctx = GetContext())
            {
                var employees = new List <ManagerTPT>();

                var manager = new ManagerTPT {
                    JobTitle = "Manager", Name = "Bar", Rank = "low"
                };
                employees.Add(manager);

                ctx.BulkInsert(employees);

                var dbManager = ctx.ManagerTpts.OrderByDescending(x => x.Id).First();

                Assert.AreEqual(manager.JobTitle, dbManager.JobTitle);
                Assert.AreEqual(manager.Name, dbManager.Name);
                Assert.AreEqual(manager.Rank, dbManager.Rank);
            }
        }