public async Task Can_update_unmapped_properties()
        {
            await using var testDatabase = CosmosTestStore.CreateInitialized(DatabaseName);
            var options = Fixture.CreateOptions(testDatabase);

            var customer = new Customer {
                Id = 42, Name = "Theon"
            };

            using (var context = new ExtraCustomerContext(options))
            {
                context.Database.EnsureCreated();

                var entry = context.Add(customer);
                entry.Property <string>("EMail").CurrentValue = "*****@*****.**";

                context.SaveChanges();
            }

            using (var context = new ExtraCustomerContext(options))
            {
                var customerFromStore = context.Set <Customer>().Single();

                Assert.Equal(42, customerFromStore.Id);
                Assert.Equal("Theon", customerFromStore.Name);

                customerFromStore.Name = "Theon Greyjoy";

                context.SaveChanges();
            }

            using (var context = new ExtraCustomerContext(options))
            {
                var customerFromStore = context.Set <Customer>().Single();

                Assert.Equal(42, customerFromStore.Id);
                Assert.Equal("Theon Greyjoy", customerFromStore.Name);

                var entry = context.Entry(customerFromStore);
                Assert.Equal("*****@*****.**", entry.Property <string>("EMail").CurrentValue);

                var json = entry.Property <JObject>("__jObject").CurrentValue;
                Assert.Equal("*****@*****.**", json["e-mail"]);

                context.Remove(customerFromStore);

                context.SaveChanges();
            }

            using (var context = new ExtraCustomerContext(options))
            {
                Assert.Empty(context.Set <Customer>().ToList());
            }
        }
        public void Can_update_unmapped_properties()
        {
            using (var testDatabase = CosmosSqlTestStore.CreateInitialized(DatabaseName))
            {
                var options = Fixture.CreateOptions(testDatabase);

                var customer = new Customer {
                    Id = 42, Name = "Theon"
                };

                using (var context = new ExtraCustomerContext(options))
                {
                    context.Database.EnsureCreated();

                    var entry = context.Add(customer);
                    entry.Property <string>("EMail").CurrentValue = "*****@*****.**";

                    context.SaveChanges();
                }

                using (var context = new CustomerContext(options))
                {
                    var customerFromStore = context.Set <Customer>().Single();

                    Assert.Equal(42, customerFromStore.Id);
                    Assert.Equal("Theon", customerFromStore.Name);

                    customerFromStore.Name = "Theon Greyjoy";

                    context.SaveChanges();
                }

                using (var context = new ExtraCustomerContext(options))
                {
                    var customerFromStore = context.Set <Customer>().Single();

                    Assert.Equal(42, customerFromStore.Id);
                    Assert.Equal("Theon Greyjoy", customerFromStore.Name);

                    var entry = context.Entry(customerFromStore);
                    Assert.Equal("*****@*****.**", entry.Property <string>("EMail").CurrentValue);

                    context.Remove(customerFromStore);

                    context.SaveChanges();
                }
            }
        }