public void InitializeAndSaveChanges_AdventureWorks(MetricCollector collector, int count) { using (collector.StartCollection()) { for (int i = 0; i < count; i++) { using (var context = AdventureWorksFixture.CreateContext()) { context.Currency.Add(new Currency { CurrencyCode = "TMP", Name = "Temporary" }); using (context.Database.BeginTransaction()) { context.SaveChanges(); // Don't mesure transaction rollback collector.StopCollection(); } collector.StartCollection(); } } } }
public void Mixed(MetricCollector collector) { using (var context = _fixture.CreateContext()) { using (context.Database.BeginTransaction()) { var customers = context.Customers.ToArray(); for (var i = 0; i < 333; i++) { context.Customers.Add(new Customer { Name = "New Customer " + i }); } for (var i = 0; i < 1000; i += 3) { context.Customers.Remove(customers[i]); } for (var i = 1; i < 1000; i += 3) { customers[i].Name += " Modified"; } collector.StartCollection(); var records = context.SaveChanges(); collector.StopCollection(); Assert.Equal(1000, records); } } }
public void Count(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Products.Count(); collector.StopCollection(); Assert.Equal(1000, result); } }
public void OrderBy(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Products.OrderBy(p => p.Retail).ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); } }
public void Projection(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Products.Select(p => new { p.Name, p.Retail }).ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); } }
public void Include(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Customers.Include(c => c.Orders).ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); Assert.Equal(2000, result.SelectMany(c => c.Orders).Count()); } }
public void LoadAll(MetricCollector collector, bool tracking, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Products.ApplyTracking(tracking); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); } }
public void Count(MetricCollector collector, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Products; collector.StartCollection(); var result = query.Count(); collector.StopCollection(); Assert.Equal(1000, result); } }
public void Projection(MetricCollector collector, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Products .Select(p => new { p.Name, p.Retail }); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); } }
public void BuildModel_AdventureWorks(MetricCollector collector) { collector.StartCollection(); var builder = new DbModelBuilder(); AdventureWorksContext.ConfigureModel(builder); var model = builder.Build(new SqlConnection(AdventureWorksFixtureBase.ConnectionString)); collector.StopCollection(); Assert.Equal(67, model.ConceptualModel.EntityTypes.Count()); }
public void OrderBy(MetricCollector collector, bool tracking) { using (var context = _fixture.CreateContext()) { var query = context.Products .ApplyTracking(tracking) .OrderBy(p => p.Retail); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); } }
public void SkipTake(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Products .OrderBy(p => p.ProductId) .Skip(500).Take(500) .ToList(); collector.StopCollection(); Assert.Equal(500, result.Count); } }
public void QueryParents(MetricCollector collector) { using (var context = _fixture.CreateContext()) { context.Orders.ToList(); collector.StartCollection(); var customers = context.Customers.ToList(); collector.StopCollection(); Assert.Equal(100, context.ChangeTracker.Entries <Customer>().Count()); Assert.Equal(100, context.ChangeTracker.Entries <Order>().Count()); Assert.All(customers, c => Assert.Equal(1, c.Orders.Count)); } }
public void Where(MetricCollector collector, bool tracking, bool caching) { using (var context = _fixture.CreateContext()) { var query = context.Products .ApplyCaching(caching) .ApplyTracking(tracking) .Where(p => p.Retail < 15); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(500, result.Count); } }
public void Include(MetricCollector collector, bool tracking, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Customers .ApplyTracking(tracking) .Include(c => c.Orders); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(1000, result.Count); Assert.Equal(2000, result.SelectMany(c => c.Orders).Count()); } }
public void QueryChildren(MetricCollector collector) { using (var context = _fixture.CreateContext()) { context.Customers.ToList(); collector.StartCollection(); var orders = context.Orders.ToList(); collector.StopCollection(); Assert.Equal(100, context.ChangeTracker.Entries <Customer>().Count()); Assert.Equal(100, context.ChangeTracker.Entries <Order>().Count()); Assert.All(orders, o => Assert.NotNull(o.Customer)); } }
public void SkipTake(MetricCollector collector, bool tracking, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Products .ApplyTracking(tracking) .OrderBy(p => p.ProductId) .Skip(500).Take(500); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(500, result.Count); } }
public void ProjectionAcrossNavigation(MetricCollector collector) { using (var context = _fixture.CreateContext()) { collector.StartCollection(); var result = context.Orders.Select(o => new { CustomerName = o.Customer.Name, OrderDate = o.Date }) .ToList(); collector.StopCollection(); Assert.Equal(2000, result.Count); } }
public void BuildModel_AdventureWorks(MetricCollector collector) { collector.StartCollection(); var conventions = new SqlServerConventionSetBuilder() .AddConventions(new CoreConventionSetBuilder().CreateConventionSet()); var builder = new ModelBuilder(conventions); AdventureWorksContext.ConfigureModel(builder); var model = builder.Model; collector.StopCollection(); Assert.Equal(67, model.EntityTypes.Count()); }
public void ProjectionAcrossNavigation(MetricCollector collector, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { // TODO Use navigation for projection when supported (#325) var query = context.Orders.Join( context.Customers, o => o.CustomerId, c => c.CustomerId, (o, c) => new { CustomerName = c.Name, OrderDate = o.Date }); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(2000, result.Count); } }
public void Update(MetricCollector collector, bool disableBatching) { using (var context = _fixture.CreateContext(disableBatching)) { using (context.Database.BeginTransaction()) { foreach (var customer in context.Customers) { customer.Name += " Modified"; } collector.StartCollection(); var records = context.SaveChanges(); collector.StopCollection(); Assert.Equal(1000, records); } } }
public void GroupBy(MetricCollector collector, bool caching) { using (var context = _fixture.CreateContext(queryCachingEnabled: caching)) { var query = context.Products .GroupBy(p => p.Retail) .Select(g => new { Retail = g.Key, Products = g }); collector.StartCollection(); var result = query.ToList(); collector.StopCollection(); Assert.Equal(10, result.Count); Assert.All(result, g => Assert.Equal(100, g.Products.Count())); } }
public void Delete(MetricCollector collector) { using (var context = _fixture.CreateContext()) { using (context.Database.BeginTransaction()) { foreach (var customer in context.Customers) { context.Customers.Remove(customer); } collector.StartCollection(); var records = context.SaveChanges(); collector.StopCollection(); Assert.Equal(1000, records); } } }
public void Insert(MetricCollector collector) { using (var context = _fixture.CreateContext()) { using (context.Database.BeginTransaction()) { for (var i = 0; i < 1000; i++) { context.Customers.Add(new Customer { Name = "New Customer " + i }); } collector.StartCollection(); var records = context.SaveChanges(); collector.StopCollection(); Assert.Equal(1000, records); } } }