private bool EntityExistsInDatabase <T>(T t) where T : Entity
 {
     using (var context = new FooContext())
     {
         return(context.Set <T>().Any(x => x.Id == t.Id));
     }
 }
        public void GraphWithoutInheritanceOrLoops_Works()
        {
            var context = new FooContext();

            var a = new A();
            var b = new B();
            var c = new C();
            var d = new D()
            {
                A = a, B = b, C = c
            };
            var e = new E()
            {
                B = b
            };
            var f = new F()
            {
                D = d, E = e
            };
            var g = new G()
            {
                D = d
            };
            var h = new H()
            {
                C = c, E = e
            };

            context.As.Add(a);
            context.Bs.Add(b);
            context.Cs.Add(c);
            context.Ds.Add(d);
            context.Es.Add(e);
            context.Fs.Add(f);
            context.Gs.Add(g);
            context.Hs.Add(h);

            context.BulkSaveAdditions();

            Assert.IsTrue(EntityExistsInDatabase(a));
            Assert.IsTrue(EntityExistsInDatabase(b));
            Assert.IsTrue(EntityExistsInDatabase(c));
            Assert.IsTrue(EntityExistsInDatabase(d));
            Assert.IsTrue(EntityExistsInDatabase(e));
            Assert.IsTrue(EntityExistsInDatabase(f));
            Assert.IsTrue(EntityExistsInDatabase(g));
            Assert.IsTrue(EntityExistsInDatabase(h));
        }