public void CompareSuppressViaViaAddIgnoreCompareLog()
        {
            //SETUP
            var options = this.CreateUniqueClassOptions <BookContext>();

            using var context = new BookContext(options);
            context.Database.EnsureClean();
            var filepath = TestData.GetFilePath("AddViewToBookContext.sql");

            context.ExecuteScriptFileInTransaction(filepath);

            var config = new CompareEfSqlConfig
            {
                //This tells EfSchemaCompare to look at ALL tables and views
                TablesToIgnoreCommaDelimited = ""
            };

            //This will ignore any Table or View that is not accessed by EF Core
            config.AddIgnoreCompareLog(new CompareLog(CompareType.Table, CompareState.ExtraInDatabase, null));
            var comparer = new CompareEfSql(config);

            //ATTEMPT
            var hasErrors = comparer.CompareEfWithDb(context);

            //VERIFY
            hasErrors.ShouldBeFalse(comparer.GetAllErrors);
        }
Exemple #2
0
        public void TestApplyScriptTwoCommandsToDatabaseOk()
        {
            //SETUP
            var options  = this.CreateUniqueClassOptions <BookContext>();
            var filepath = TestData.GetFilePath("Script02 - Add two rows to Authors table.sql");

            using (var context = new BookContext(options))
            {
                context.CreateEmptyViaWipe();

                //ATTEMPT
                context.ExecuteScriptFileInTransaction(filepath);

                //VERIFY
                context.Authors.Count().ShouldEqual(2);
            }
        }
        public void TestApplyScriptOneCommandToDatabaseOk()
        {
            //SETUP
            var options  = this.CreateUniqueClassOptions <BookContext>();
            var filepath = TestData.GetFilePath("Script01 - Add row to Authors table.sql");

            using (var context = new BookContext(options))
            {
                context.Database.EnsureClean();

                //ATTEMPT
                context.ExecuteScriptFileInTransaction(filepath);

                //VERIFY
                context.Authors.Count().ShouldEqual(1);
            }
        }
Exemple #4
0
        public void TestApplyScriptExampleOk()
        {
            //SETUP
            var options = this
                          .CreateUniqueClassOptions <BookContext>();
            var filepath = TestData             //#A
                           .GetFilePath(        //#A
                "AddUserDefinedFunctions.sql"); //#A

            using (var context = new BookContext(options))
            {
                if (context.CreateEmptyViaWipe())    //#B
                {
                    context                          //#C
                    .ExecuteScriptFileInTransaction( //#C
                        filepath);                   //#C
                }
            }
        }
        public void GetBookContextDatabaseModelWithView()
        {
            //SETUP
            var options = this.CreateUniqueClassOptions <BookContext>();

            using var context = new BookContext(options);
            context.Database.EnsureClean();
            var filepath = TestData.GetFilePath("AddViewToBookContext.sql");

            context.ExecuteScriptFileInTransaction(filepath);

            var serviceProvider = new SqlServerDesignTimeServices().GetDesignTimeProvider();
            var factory         = serviceProvider.GetService <IDatabaseModelFactory>();

            //ATTEMPT
            var model = factory.Create(context.Database.GetConnectionString(),
                                       new DatabaseModelFactoryOptions(new string[] { }, new string[] { }));

            //VERIFY
            model.ShouldNotBeNull();
            model.Tables.Select(x => x.Name).OrderBy(x => x).ToArray()
            .ShouldEqual(new[] { "Authors", "BookAuthor", "Books", "BookTag", "MyView", "PriceOffers", "Review", "Tags" });
        }