DataAccessGenerator

Classes > DataProvider.CodeGeneration > DataAccessGenerator

Static methods for generating data access extension methods

public static class DataAccessGenerator

Methods

GenerateParameterList(IReadOnlyList<ParameterInfo>)

public static string GenerateParameterList(IReadOnlyList<ParameterInfo> parameters)

Generates parameter list string for method signatures

Parameters:

Name Type Description
parameters ParameterInfo> SQL parameters

Returns: String - Formatted parameter list

GenerateQueryMethod(string, string, string, string, IReadOnlyList<ParameterInfo>, IReadOnlyList<DatabaseColumn>, string)

public static Result<string, SqlError> GenerateQueryMethod(string className, string methodName, string returnTypeName, string sql, IReadOnlyList<ParameterInfo> parameters, IReadOnlyList<DatabaseColumn> columns, string connectionType = "SqliteConnection")

Generates a data access extension method for querying

Parameters:

Name Type Description
className String Extension class name
methodName String Method name
returnTypeName String Return type name
sql String SQL query
parameters ParameterInfo> SQL parameters
columns DatabaseColumn> Database columns
connectionType String Database connection type (e.g., SqliteConnection)

Returns: SqlError> - Generated extension method code

GenerateInsertMethod(DatabaseTable, string)

public static Result<string, SqlError> GenerateInsertMethod(DatabaseTable table, string connectionType = "SqliteConnection")

Generates an INSERT method for a database table

Parameters:

Name Type Description
table DatabaseTable Database table metadata
connectionType String Database connection type

Returns: SqlError> - Generated INSERT method code

GenerateNonQueryMethod(string, string, string, IReadOnlyList<ParameterInfo>, string)

public static Result<string, SqlError> GenerateNonQueryMethod(string className, string methodName, string sql, IReadOnlyList<ParameterInfo> parameters, string connectionType = "SqliteConnection")

Generates a non-query extension method for UPDATE/DELETE/INSERT SQL statements. Returns the number of rows affected.

Parameters:

Name Type Description
className String Extension class name
methodName String Method name
sql String SQL statement
parameters ParameterInfo> SQL parameters
connectionType String Database connection type (e.g., SqliteConnection)

Returns: SqlError> - Generated extension method code

GenerateUpdateMethod(DatabaseTable, string)

public static Result<string, SqlError> GenerateUpdateMethod(DatabaseTable table, string connectionType = "SqliteConnection")

Generates an UPDATE method for a database table

Parameters:

Name Type Description
table DatabaseTable Database table metadata
connectionType String Database connection type

Returns: SqlError> - Generated UPDATE method code

GenerateBulkInsertMethod(DatabaseTable, int, string)

public static Result<string, SqlError> GenerateBulkInsertMethod(DatabaseTable table, int batchSize = 1000, string connectionType = "SqliteConnection")

Generates a bulk INSERT method for a database table. Uses multi-row VALUES syntax for database-independent bulk inserts.

Parameters:

Name Type Description
table DatabaseTable Database table metadata
batchSize Int32 Maximum rows per batch (default 1000)
connectionType String Database connection type

Returns: SqlError> - Generated bulk INSERT method code

GenerateBulkUpsertMethod(DatabaseTable, string, int, string)

public static Result<string, SqlError> GenerateBulkUpsertMethod(DatabaseTable table, string databaseType = "SQLite", int batchSize = 1000, string connectionType = "SqliteConnection")

Generates a bulk UPSERT method for a database table. Uses INSERT ... ON CONFLICT DO UPDATE for PostgreSQL, REPLACE INTO for SQLite.

Parameters:

Name Type Description
table DatabaseTable Database table metadata
databaseType String Target database type (Postgres or SQLite)
batchSize Int32 Maximum rows per batch (default 1000)
connectionType String Database connection type

Returns: SqlError> - Generated bulk UPSERT method code