コード例 #1
0
        public static void UpdateTable_DbTableHasMoreColumnsThanModel_RemoveDbColumnsNotInModel()
        {
            var dbFactory = new OrmLiteConnectionFactory(connectionString_, OrmLiteDialectProvider);

            using (var db = dbFactory.OpenDbConnection())
            {
                //Arrange by asserting that these exists on db, after act they should not exist anymore
                var smallTestClass = CustomProvider.Quote("SmallTestClass");
                var precision      = CustomProvider.Quote("Precision");
                var targetDate     = CustomProvider.Quote("TargetDate");

                //Executes raw sql to server
                var countPrecision =
                    db.SqlList <string>(CustomProvider.CheckIfColumnExists(smallTestClass, precision)).Count;
                Assert.GreaterOrEqual(countPrecision, 1);

                var targetDateCount =
                    db.SqlList <string>(CustomProvider.CheckIfColumnExists(smallTestClass, targetDate)).Count;
                Assert.GreaterOrEqual(targetDateCount, 1);

                //Act
                db.UpdateTable <SmallTestClass>(CustomProvider, true);

                //Assert that they are gone
                var countPrecisionAfter =
                    db.SqlList <string>(CustomProvider.CheckIfColumnExists(smallTestClass, precision)).Count;
                Assert.LessOrEqual(countPrecisionAfter, 0);

                var targetDateCountAfter =
                    db.SqlList <string>(CustomProvider.CheckIfColumnExists(smallTestClass, targetDate)).Count;
                Assert.LessOrEqual(targetDateCountAfter, 0);
            }
        }