public void ShouldAddNewAggregateRoot_Detached() { 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); context.SaveChanges(); } // Simulate detach using (var context = new TestDbContext()) { // Setup mapping node1 = context.UpdateGraph(node1, map => map .OwnedEntity(p => p.OneToOneOwned) .AssociatedEntity(p => p.OneToOneAssociated) .OwnedCollection(p => p.OneToManyOwned, with => with.OwnedEntity(p => p.OneToManyOneToOneOwned)) .AssociatedCollection(p => p.OneToManyAssociated)); context.SaveChanges(); Assert.IsNotNull(context.Nodes.SingleOrDefault(p => p.Id == node1.Id)); } }
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); } }