public void ShouldAddRelationToExistingAssociatedCollection() { var associated = new OneToManyAssociatedModel { Title = "Second One" }; var node1 = new TestNode { Title = "New Node", OneToManyAssociated = new List<OneToManyAssociatedModel> { new OneToManyAssociatedModel { Title = "First One" } } }; using (var context = new TestDbContext()) { context.Nodes.Add(node1); context.OneToManyAssociatedModels.Add(associated); context.SaveChanges(); } // Simulate detach node1.OneToManyAssociated.Add(associated); using (var context = new TestDbContext()) { // Setup mapping context.UpdateGraph(node1, map => map .AssociatedCollection(p => p.OneToManyAssociated)); context.SaveChanges(); var node2 = context.Nodes.Include(p => p.OneToManyAssociated).Single(p => p.Id == node1.Id); Assert.IsNotNull(node2); Assert.IsTrue(node2.OneToManyAssociated.Count == 2); } }
public void ShouldAddNewAggregateRoot_Attached() { var associated = new OneToOneAssociatedModel { Title = "Associated" }; var manyAssociated = new OneToManyAssociatedModel { Title = "Associated" }; var node1 = new TestNode { Title = "New Node", OneToManyOwned = new List<OneToManyOwnedModel> { new OneToManyOwnedModel { Title = "One" }, new OneToManyOwnedModel { Title = "Two" }, new OneToManyOwnedModel { Title = "Three" } }, OneToManyAssociated = new List<OneToManyAssociatedModel> { manyAssociated }, OneToOneOwned = new OneToOneOwnedModel { Title = "OneToOne" }, OneToOneAssociated = associated }; using (var context = new TestDbContext()) { context.OneToManyAssociatedModels.Add(manyAssociated); context.OneToOneAssociatedModels.Add(associated); node1 = context.UpdateGraph(node1); context.SaveChanges(); Assert.IsNotNull(context.Nodes.SingleOrDefault(p => p.Id == node1.Id)); } }