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 |