public void Simple_query_and_update_works_with_wrapping_provider_setup_at_EF_level_only()
        {
            WrappingAdoNetProvider <SqlClientFactory> .WrapProviders();

            var log = WrappingAdoNetProvider <SqlClientFactory> .Instance.Log;

            log.Clear();

            ExtendedSqlAzureExecutionStrategy.ExecuteNew(
                () =>
            {
                using (var context = new EfLevelBlogContext())
                {
                    var blog = context.Blogs.Single();
                    Assert.Equal("Half a Unicorn", blog.Title);
                    Assert.Equal("Wrap it up...", blog.Posts.Single().Title);

                    using (context.Database.BeginTransaction())
                    {
                        blog.Posts.Add(
                            new Post
                        {
                            Title = "Throw it away..."
                        });
                        Assert.Equal(1, context.SaveChanges());

                        Assert.Equal(
                            new[] { "Throw it away...", "Wrap it up..." },
                            context.Posts.AsNoTracking().Select(p => p.Title).OrderBy(t => t));
                    }
                }
            });

            // Sanity check that the wrapping provider really did get used
            var methods = log.Select(i => i.Method).ToList();

            Assert.Contains("ExecuteReader", methods);
            Assert.Contains("ExecuteNonQuery", methods);
            Assert.Contains("Open", methods);
            Assert.Contains("Close", methods);
            Assert.Contains("Commit", methods);
            Assert.Contains("Generate", methods);
        }
        [Fact] // CodePlex 2320
        public void Model_is_available_in_DatabaseExists()
        {
            WrappingAdoNetProvider <SqlClientFactory> .WrapProviders();

            var log = WrappingAdoNetProvider <SqlClientFactory> .Instance.Log;

            log.Clear();

            using (var context = new EfLevelBlogContext())
            {
                context.Database.Exists();
            }

            var rawDetails     = (object[])log.Where(i => i.Method == "DbDatabaseExists").Select(i => i.RawDetails).Single();
            var itemCollection = (StoreItemCollection)rawDetails[1];

            Assert.Equal(
                new[] { "Blog", "Post" },
                itemCollection.OfType <EntityType>().Select(e => e.Name).OrderBy(n => n).ToArray());
        }