コード例 #1
0
        public void GeneratorForeignKeyComposite2(SqlEngineVersion version)
        {
            var db = new ForeignKeyCompositeSetForeignKeyTo();
            var documenterContext = DataDefinitionDocumenterTestsHelper.CreateTestGeneratorContext(version, new DocumenterTests.TableCustomizer());
            var writer            = CSharpWriterFactory.GetCSharpWriter(version, documenterContext, "ForeignKeyCompositeSetForeignKeyTo");
            var generator         = new CSharpGenerator(writer, version, "ForeignKeyCompositeSetForeignKeyTo", "FizzCode.DbTools.DataDefinitionDocumenter.Tests");

            generator.GenerateMultiFile(db);
        }
コード例 #2
0
        public void GeneratorUniqueConstraint(SqlEngineVersion version)
        {
            var db = new TestDatabaseUniqueConstraint();
            var documenterContext = DataDefinitionDocumenterTestsHelper.CreateTestGeneratorContext(version, new DocumenterTests.TableCustomizer());
            var writer            = CSharpWriterFactory.GetCSharpWriter(version, documenterContext, "TestDatabaseUniqueConstraint");
            var generator         = new CSharpGenerator(writer, version, "TestDatabaseUniqueConstraint", "FizzCode.DbTools.DataDefinitionDocumenter.Tests");

            generator.GenerateMultiFile(db);
        }
コード例 #3
0
        public void FkNoCheckTest()
        {
            var version = MsSqlVersion.MsSql2016;

            var dd = new TestDatabaseFkNoCheckTest();
            var documenterContext = DataDefinitionDocumenterTestsHelper.CreateTestGeneratorContext(version, new DocumenterTests.TableCustomizer());
            var writer            = CSharpWriterFactory.GetCSharpWriter(version, documenterContext, "TestDatabaseFkNoCheckTest");
            var generator         = new CSharpGenerator(writer, version, "TestDatabaseFkNoCheckTest", "FizzCode.DbTools.DataDefinitionDocumenter.Tests");

            generator.GenerateSingleFile(dd, "TestDatabaseFkNoCheckTest.cs");
        }
コード例 #4
0
        public void Generate(
            [Option(LongName = "connectionString", ShortName = "c", Description = "Provide a valid connection string to the database")]
            string connectionString,
            [Option(LongName = "singleOrMulti", ShortName = "m", Description = "multi for multi file, single for single file generation")]
            string singleOrMulti,
            [Option(LongName = "sqlType", ShortName = "t")]
            string sqlType,
            [Option(LongName = "namespace", ShortName = "n")]
            string @namespace,
            [Option(LongName = "newDatabaseName", ShortName = "b")]
            string newDatabaseName,
            [Option(LongName = "patternFileName", ShortName = "p")]
            string patternFileName,
            [Option(LongName = "flags", ShortName = "f")]
            List <string> flags)
        {
            var version = SqlEngineVersions.GetVersion(sqlType);

            var connString = new NamedConnectionString(
                version.GetType().Name,
                version.ProviderName,
                connectionString,
                version.VersionString);

            var context = CreateContext(version);

            var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(connString, context, null);

            var dd = ddlReader.GetDatabaseDefinition();

            var generatorContext = CreateGeneratorContext(context, patternFileName);

            if (flags != null)
            {
                SetSettingsFromFlags(flags, generatorContext.GeneratorSettings);
            }

            var writer    = CSharpWriterFactory.GetCSharpWriter(version, generatorContext, newDatabaseName);
            var generator = new CSharpGenerator(writer, version, newDatabaseName, @namespace);

            if (singleOrMulti == "s" || singleOrMulti == "single")
            {
                generator.GenerateSingleFile(dd, newDatabaseName + ".cs");
            }
            else
            {
                generator.GenerateMultiFile(dd);
            }
        }