public void Manage_EntityWithState()
        {
            //Arrange
            Country country;
            using (var context = new ManagementContext())
            {
                country = context.Countries.First();
            }
            var customer = new Customer()
            {
                State = State.Added,
                Name = "Nuevo cliente",                
                Addresses = new Collection<Address>()
                {
                    new Address()
                    {
                        State = State.Added,
                        Region = "Nueva región 1",
                        CountryId = country.Id,
                        Country = country,                        
                    }
                    ,
                    new Address()
                    {
                        State = State.Added,
                        Region = "Nueva región 2",
                        CountryId = country.Id,
                    }
                    ,
                    new Address()
                    {
                        State = State.Added,
                        Region = "Nueva región 3",
                        Country = country,
                    }
                }
            };

            using (var context = new ManagementContext())
            {
                context.Customers.Add(customer);

                //Act
                context.ApplyStateChanges();

                //Assert
                Assert.AreEqual(context.Entry(customer).State, EntityState.Added, "customer no es Added");

                var nuevaRegion1 = customer.Addresses.Single(p => p.Region == "Nueva región 1");
                Assert.AreEqual(context.Entry(nuevaRegion1).State, EntityState.Added, "address no es Added");
                Assert.AreEqual(context.Entry(nuevaRegion1.Country).State, EntityState.Unchanged, "country no es Unchanged");
                Assert.IsNotNull(nuevaRegion1.Country, "country es null");

                var nuevaRegion2 = customer.Addresses.Single(p => p.Region == "Nueva región 2");
                Assert.IsNotNull(nuevaRegion2.Country, "country es null");

                var nuevaRegion3 = customer.Addresses.Single(p => p.Region == "Nueva región 3");
                Assert.AreNotEqual(nuevaRegion3.CountryId, 0, "CountryId es 0");
            }
        }
コード例 #2
0
        public void Manage_EntityWithState()
        {
            //Arrange
            Country country;

            using (var context = new ManagementContext())
            {
                country = context.Countries.First();
            }
            var customer = new Customer()
            {
                State     = State.Added,
                Name      = "Nuevo cliente",
                Addresses = new Collection <Address>()
                {
                    new Address()
                    {
                        State     = State.Added,
                        Region    = "Nueva región 1",
                        CountryId = country.Id,
                        Country   = country,
                    }
                    ,
                    new Address()
                    {
                        State     = State.Added,
                        Region    = "Nueva región 2",
                        CountryId = country.Id,
                    }
                    ,
                    new Address()
                    {
                        State   = State.Added,
                        Region  = "Nueva región 3",
                        Country = country,
                    }
                }
            };

            using (var context = new ManagementContext())
            {
                context.Customers.Add(customer);

                //Act
                context.ApplyStateChanges();

                //Assert
                Assert.AreEqual(context.Entry(customer).State, EntityState.Added, "customer no es Added");

                var nuevaRegion1 = customer.Addresses.Single(p => p.Region == "Nueva región 1");
                Assert.AreEqual(context.Entry(nuevaRegion1).State, EntityState.Added, "address no es Added");
                Assert.AreEqual(context.Entry(nuevaRegion1.Country).State, EntityState.Unchanged, "country no es Unchanged");
                Assert.IsNotNull(nuevaRegion1.Country, "country es null");

                var nuevaRegion2 = customer.Addresses.Single(p => p.Region == "Nueva región 2");
                Assert.IsNotNull(nuevaRegion2.Country, "country es null");

                var nuevaRegion3 = customer.Addresses.Single(p => p.Region == "Nueva región 3");
                Assert.AreNotEqual(nuevaRegion3.CountryId, 0, "CountryId es 0");
            }
        }