public void Dispose() { try { // Ensure LocalDb databases are deleted after use so that LocalDb doesn't throw if // the temp location in which they are stored is later cleaned. using (var context = new SimpleLocalDbModelContext()) { context.Database.Delete(); } using (var context = new LocalDbLoginsContext()) { context.Database.Delete(); } using (var context = new ModelWithWideProperties()) { context.Database.Delete(); } Database.Delete("Scenario_CodeFirstWithModelBuilder"); Database.Delete("Scenario_Use_AppConfig_LocalDb_connection_string"); } finally { MutableResolver.ClearResolvers(); AppDomain.CurrentDomain.SetData("DataDirectory", _previousDataDirectory); } }
public void Scenario_Using_two_databases() { EnsureDatabaseInitialized(() => new LocalDbLoginsContext()); EnsureDatabaseInitialized(() => new SimpleLocalDbModelContext()); using (var context = new LocalDbLoginsContext()) { var login = new Login { Id = Guid.NewGuid(), Username = "******" }; context.Logins.Add(login); context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.Same(login, context.Logins.Find(login.Id)); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, login).State); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } using (var context = new SimpleLocalDbModelContext()) { var category = new Category { Id = "Books" }; var product = new Product { Name = "The Unbearable Lightness of Being", Category = category }; context.Products.Add(product); context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.Equal(EntityState.Unchanged, GetStateEntry(context, product).State); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, category).State); Assert.Equal("Books", product.CategoryId); Assert.Same(category, product.Category); Assert.True(category.Products.Contains(product)); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } }