Ejemplo n.º 1
0
 private static void RunAddAndSaveChangesOptimizedTest()
 {
     Console.WriteLine("Add 1K & SaveChanges (EF6 Optimized)");
     RunTest(
         () =>
     {
         using (var db = new PerformanceEf6.EF6.Context.AdventureWorksContext())
         {
             db.Configuration.AutoDetectChangesEnabled = false;
             var categories = new PerformanceEf6.EF6.Models.ProductCategory[1000];
             for (int i = 0; i < 1000; i++)
             {
                 categories[i] = new PerformanceEf6.EF6.Models.ProductCategory {
                     Name = $"Test {Guid.NewGuid()}"
                 };
             }
             db.ProductCategories.AddRange(categories);
             db.SaveChanges();
         }
     },
         () =>
     {
         using (var db = new PerformanceEfCore.EFCore.Context.AdventureWorksContext())
         {
             for (int i = 0; i < 1000; i++)
             {
                 db.ProductCategories.Add(new PerformanceEfCore.EFCore.Models.ProductCategory {
                     Name = $"Test {Guid.NewGuid()}"
                 });
             }
             db.SaveChanges();
         }
     });
 }
Ejemplo n.º 2
0
 private static void RunComplexQueryTest()
 {
     Console.WriteLine("Query Complex");
     RunTest(
         ef6Test: () =>
     {
         using (var db = new PerformanceEf6.EF6.Context.AdventureWorksContext())
         {
             var l = db.Products
                     .Include(x => x.TransactionHistories)
                     .Include(x => x.ProductSubcategory)
                     .Include(x => x.ProductSubcategory.ProductCategory)
                     .Include(x => x.ProductReviews)
                     .Select(x => new PerformanceEf6.EF6.ModelForTesting()
             {
                 ProductId    = x.ProductID,
                 Class        = x.Class,
                 ModifiedDate = x.TransactionHistories.Select(th => th.ModifiedDate).FirstOrDefault(),
                 CategoryName = x.ProductSubcategory.ProductCategory.Name,
                 Email        = x.ProductReviews.Select(pr => pr.EmailAddress).FirstOrDefault()
             })
                     .Take(100).ToList();
         }
     },
         ef7Test: () =>
     {
         using (var db = new PerformanceEfCore.EFCore.Context.AdventureWorksContext())
         {
             var el = Repo.GetComplexData(db);
             //var el = Repo.CompiledQuery(db).ToList();
             //var el = Repo.GetComplexDataQueryType(db).ToList();
         }
     });
 }
Ejemplo n.º 3
0
 private static void RunAddAndSaveChangesTest()
 {
     Console.WriteLine("Add 1K & SaveChanges");
     RunTest(
         () =>
     {
         using (var db = new PerformanceEf6.EF6.Context.AdventureWorksContext())
         {
             for (int i = 0; i < 1000; i++)
             {
                 db.ProductCategories.Add(new PerformanceEf6.EF6.Models.ProductCategory {
                     Name = $"Test {Guid.NewGuid()}"
                 });
             }
             db.SaveChanges();
         }
     },
         () =>
     {
         using (var db = new PerformanceEfCore.EFCore.Context.AdventureWorksContext())
         {
             for (int i = 0; i < 1000; i++)
             {
                 db.ProductCategories.Add(new PerformanceEfCore.EFCore.Models.ProductCategory {
                     Name = $"Test {Guid.NewGuid()}"
                 });
             }
             db.SaveChanges();
         }
     });
 }
Ejemplo n.º 4
0
        private static void ResetAndWarmup()
        {
            using (var db = new PerformanceEf6.EF6.Context.AdventureWorksContext())
            {
                db.Database.ExecuteSqlCommand(@"DELETE FROM Production.ProductCategory WHERE Name LIKE 'Test %'");
                db.Customers.FirstOrDefault();
            }

            using (var db = new PerformanceEfCore.EFCore.Context.AdventureWorksContext())
            {
                db.Customers.FirstOrDefault();
            }
        }
Ejemplo n.º 5
0
 private static void RunToListTest()
 {
     Console.WriteLine("Query 19K ToList");
     RunTest(
         ef6Test: () =>
     {
         using (var db = new PerformanceEf6.EF6.Context.AdventureWorksContext())
         {
             db.Customers.ToList();
         }
     },
         ef7Test: () =>
     {
         using (var db = new PerformanceEfCore.EFCore.Context.AdventureWorksContext())
         {
             db.Customers.ToList();
         }
     });
 }