SqliteCodeGenerator

Classes > DataProvider.SQLite > SqliteCodeGenerator

SQLite specific code generator implementation and incremental source generator entrypoint

[Generator]
public sealed class SqliteCodeGenerator : IIncrementalGenerator

Methods

GenerateCodeWithMetadata(string, string, SelectStatement, string, IReadOnlyList<DatabaseColumn>, bool, GroupingConfig?, CodeGenerationConfig?)

public static Result<string, SqlError> GenerateCodeWithMetadata(string fileName, string sql, SelectStatement statement, string connectionString, IReadOnlyList<DatabaseColumn> columnMetadata, bool hasCustomImplementation, GroupingConfig? groupingConfig = null, CodeGenerationConfig? config = null)

Generates C# source for a SQL file using real database metadata.

Parameters:

Name Type Description
fileName String The SQL file name.
sql String The SQL content.
statement SelectStatement The parsed SQL statement metadata.
connectionString String The database connection string.
columnMetadata DatabaseColumn> Real column metadata from the database.
hasCustomImplementation Boolean Whether a custom implementation exists.
groupingConfig GroupingConfig Optional grouping configuration for parent-child relationships.
config CodeGenerationConfig Optional code generation configuration with custom functions.

Returns: SqlError> - Result with generated source or an error.

GenerateTableOperations(ITableOperationGenerator, DatabaseTable, TableConfig)

public static Result<string, SqlError> GenerateTableOperations(ITableOperationGenerator tableOperationGenerator, DatabaseTable table, TableConfig config)

Generate C# source code for Insert/Update operations based on table configuration

Parameters:

Name Type Description
tableOperationGenerator ITableOperationGenerator The table generator
table DatabaseTable The database table metadata
config TableConfig The table configuration

Returns: SqlError> - The generated C# source code

GetColumnMetadataFromSqlAsync(string, string, IEnumerable<ParameterInfo>)

public static Task<Result<IReadOnlyList<DatabaseColumn>, SqlError>> GetColumnMetadataFromSqlAsync(string connectionString, string sql, IEnumerable<ParameterInfo> parameters)

Gets column metadata by executing the SQL query against the database. This is the proper way to get column types - by executing the query and checking metadata.

Parameters:

Name Type Description
connectionString String Database connection string
sql String SQL query to execute
parameters ParameterInfo> Query parameters

Returns: SqlError>> - List of database columns with their metadata

Initialize(IncrementalGeneratorInitializationContext)

public void Initialize(IncrementalGeneratorInitializationContext context)

Initializes the incremental generator for SQLite. Collects .sql files, grouping config, and DataProvider.json and registers the output step.

Parameters:

Name Type Description
context IncrementalGeneratorInitializationContext The initialization context