public void FkCheckNoCheckTest()
        {
            var version = MsSqlVersion.MsSql2016;

            var dd = new TestDatabaseFk();

            dd.SetVersions(version.GetTypeMapper());
            Init(version, dd);

            var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(
                SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName]
                , SqlExecuterTestAdapter.GetContext(version), dd.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

            var fk = dd.GetTable("Foreign").Properties.OfType <ForeignKey>().First();

            Assert.AreEqual("true", fk.SqlEngineVersionSpecificProperties[version, "Nocheck"]);

            fk.SqlEngineVersionSpecificProperties[version, "Nocheck"] = "false";

            var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version));
            var changes  = comparer.Compare(ddInDatabase, dd);

            _ = changes[0] as ForeignKeyChange;

            _ = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version)));

            // TODO change FK
            // databaseMigrator.
        }
Beispiel #2
0
        public void SpSimple(SqlEngineVersion version)
        {
            var db = new DbWithSp();

            Init(version, db);

            SqlExecuterTestAdapter.GetExecuter(version.UniqueName).ExecuteQuery("GetCompanies");
        }
Beispiel #3
0
        public void SpSimpleQuryBuilder(SqlEngineVersion version)
        {
            var db = new DbWithSpQueryBuilder();

            Init(version, db);

            var sqlStatementWithParameters = new SqlStatementWithParameters("EXEC GetCompaniesWithParameter @Id=@Id");

            sqlStatementWithParameters.Parameters.Add("@Id", 1);

            SqlExecuterTestAdapter.GetExecuter(version.UniqueName).ExecuteQuery(sqlStatementWithParameters);
        }
        private static DatabaseMigrator ProcessAndGetMigrator(SqlEngineVersion version, DatabaseDefinitions dds, out List <IMigration> changes)
        {
            Init(version, dds.Original);

            var ddlReader    = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

            var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version));

            changes = comparer.Compare(ddInDatabase, dds.New);

            var databaseMigrator = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version)));

            return(databaseMigrator);
        }
        public override void Pk_Add(SqlEngineVersion version)
        {
            var dds = Pk_Add_Dds(version);

            var databaseMigrator = ProcessAndGetMigrator(version, dds, out var changes);

            var primaryKeyNew = changes[0] as PrimaryKeyNew;

            databaseMigrator.NewPrimaryKey(primaryKeyNew);

            var ddlReader    = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

            var newPk = ddInDatabase.GetTable("Company").Properties.OfType <PrimaryKey>().First();

            Assert.AreEqual(1, newPk.SqlColumns.Count);
            Assert.AreEqual("Id", newPk.SqlColumns[0].SqlColumn.Name);
            Assert.AreEqual("PK_Company", newPk.Name, true, CultureInfo.InvariantCulture);
        }