private void EnsureDatabaseCreated() { using (var context = new OrdersContext(_connectionString)) { if (!context.Database.Exists()) { context.Database.Create(); InsertSeedData(); OnDatabaseCreated(context); } else if (!IsDatabaseCorrect(context)) { context.Database.Delete(); context.Database.Create(); InsertSeedData(); OnDatabaseCreated(context); } Assert.True(IsDatabaseCorrect(context)); } }
protected virtual void OnDatabaseCreated(OrdersContext context) { }
private bool IsDatabaseCorrect(OrdersContext context) => context.Database.CompatibleWithModel(throwIfNoMetadata: true) && _productCount == context.Products.Count() && _customerCount == context.Customers.Count() && (_customerCount * _ordersPerCustomer == context.Orders.Count()) && (_customerCount * _ordersPerCustomer * _linesPerOrder == context.OrderLines.Count());