Exemplo n.º 1
0
    public void EnsureCreateClass_FromSqlTableReference_AndFromQuery_ProduceEquivalentResults()
    {
        string classFromQuery = string.Empty, classFromTable = string.Empty;

        "Given a C# class generated from a query"
        ._(() =>
        {
            var query      = string.Format("select * from {0}", TableName);
            classFromQuery = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet
                             .GenerateClass(SqlConnectionProviders.AdventureWorksDb, query, "Employee");

            var compileResults = RoslynHelper.TryCompile(classFromQuery);
            compileResults.IsValid().Should().BeTrue();
        });
        "Given a C# class generated from SQL InformationSchema metadata"
        ._(() =>
        {
            var sqlTableReference = new SqlTableReference(SqlConnectionProviders.AdventureWorksDb, TableName);
            classFromTable        = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(sqlTableReference);
            var compileResults    = RoslynHelper.TryCompile(classFromTable);
            compileResults.IsValid().Should().BeTrue();
        });
        "They should produce identical output"
        ._(() =>
        {
            Console.WriteLine("From Query:\r\n" + classFromQuery);
            Console.WriteLine("From Table:\r\n" + classFromTable);
            classFromTable.Should().BeEquivalentTo(classFromQuery);
        });
    }
Exemplo n.º 2
0
    public void CreateClassFromSqlTableReference()
    {
        var sqlTableReference = new SqlTableReference(SqlConnectionProviders.AdventureWorksDb, TableName);
        var cSharpClass       = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(sqlTableReference);
        var compileResult     = RoslynHelper.TryCompile(cSharpClass);

        compileResult.IsValid().Should().BeTrue();
        Console.WriteLine(cSharpClass);
    }
Exemplo n.º 3
0
    private static async Task GeneratePbsiDatabaseTypes(StaticSqlConnectionProvider scp,
                                                        bool includeAttributes, bool includeTemporalColumns)
    {
        var generatorOptions = new CSharpClassTextGeneratorOptions()
        {
            IncludePropertyAnnotationAttributes = includeAttributes
        };

        var tableDefinitions = await InformationSchemaMetadataExplorer.GetInformationSchemaTableDefinitions(scp);

        foreach (var tableDefinition in tableDefinitions)
        {
            if (string.Equals(tableDefinition.InformationSchemaTable.TABLE_SCHEMA, "PbsiSf",
                              StringComparison.CurrentCultureIgnoreCase))
            {
                continue;
            }

            var columns = tableDefinition.InformationSchemaColumns;
            if (!includeTemporalColumns)
            {
                columns = columns.Where(z => !z.COLUMN_NAME.InsensitiveEquals("validto") &&
                                        !z.COLUMN_NAME.InsensitiveEquals("validfrom")
                                        )
                          .ToList();
            }

            var tableName = tableDefinition.InformationSchemaTable.TABLE_NAME
                            .Replace(".", "")
                            .Replace("$", "_");

            if (tableName.EndsWith("_History", StringComparison.OrdinalIgnoreCase))
            {
                continue;
            }

            var cSharpClass = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(
                columns,
                tableName,
                generatorOptions
                );
            Console.WriteLine(cSharpClass);
        }
    }
    public void FromInformationSchema()
    {
        var text = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(SqlTableReference);

        Console.WriteLine(text);
    }