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); } }
public void Scenario_Relate_using_FK() { EnsureDatabaseInitialized(() => new SimpleLocalDbModelContext()); using (var context = new SimpleLocalDbModelContext()) { var product = new Product { Name = "Bovril", CategoryId = "Foods" }; context.Products.Add(product); context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.NotNull(product); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, product).State); Assert.Equal("Foods", product.CategoryId); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } }
public void Scenario_Insert() { EnsureDatabaseInitialized(() => new SimpleLocalDbModelContext()); using (var context = new SimpleLocalDbModelContext()) { var product = new Product { Name = "Vegemite" }; context.Products.Add(product); context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.NotEqual(0, product.Id); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, product).State); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } }
public void Scenario_Update() { EnsureDatabaseInitialized(() => new SimpleLocalDbModelContext()); using (var context = new SimpleLocalDbModelContext()) { var product = context.Products.Find(1); product.Name = "iSnack 2.0"; context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.Equal("iSnack 2.0", product.Name); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, product).State); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } }
public void Scenario_Relate_using_query() { EnsureDatabaseInitialized(() => new SimpleLocalDbModelContext()); using (new TransactionScope()) { using (var context = new SimpleLocalDbModelContext()) { var category = context.Categories.Find("Foods"); var product = new Product() { Name = "Bovril", Category = category }; context.Products.Add(product); context.SaveChanges(); // Scenario ends; simple validation of final state follows Assert.NotNull(product); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, product).State); Assert.NotNull(category); Assert.Equal(EntityState.Unchanged, GetStateEntry(context, category).State); Assert.Equal("Foods", product.CategoryId); Assert.Same(category, product.Category); Assert.True(category.Products.Contains(product)); Assert.Equal(@"(localdb)\v11.0", context.Database.Connection.DataSource); } } }