![]() |
VOOZH | about |
This glossary defines codebase-specific terms, jargon, and domain concepts used within the Npgsql Entity Framework Core provider.
The system responsible for bridging .NET CLR types and PostgreSQL database types.
jsonb, inet, or uuid src/EFCore.PG/Storage/Internal/NpgsqlTypeMappingSource.cs67-124The process of turning an EF Core SelectExpression or MigrationOperation into a PostgreSQL-compatible SQL string.
SELECT statements. It handles PostgreSQL-specific syntax like LIMIT/OFFSET (instead of TOP) and the string concatenation operator || src/EFCore.PG/Query/Internal/NpgsqlQuerySqlGenerator.cs14-15 src/EFCore.PG/Query/Internal/NpgsqlQuerySqlGenerator.cs116-130UNLOGGED tables and COMMENT ON syntax src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs24-25 src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs175-189The process of reading an existing PostgreSQL database schema and generating EF Core model code.
pg_attribute, pg_type) to build a DatabaseModel src/EFCore.PG/Scaffolding/Internal/NpgsqlDatabaseModelFactory.cs18-19 src/EFCore.PG/Scaffolding/Internal/NpgsqlDatabaseModelFactory.cs196-205| Term | Definition | Code Reference |
|---|---|---|
| JSONB | Binary-stored JSON format in PostgreSQL. Optimized for indexing and querying. | NpgsqlJsonTypeMapping src/EFCore.PG/Storage/Internal/Mapping/NpgsqlJsonTypeMapping.cs1-10 |
| Search Vector | A tsvector type used for Full-Text Search. | NpgsqlTsVector test/EFCore.PG.FunctionalTests/BuiltInDataTypesNpgsqlTest.cs116 |
| Identity Column | The modern SQL-standard way to handle auto-incrementing columns (PostgreSQL 10+). | NpgsqlValueGenerationStrategy.IdentityByDefaultColumn src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs84-85 |
| Serial Column | The legacy PostgreSQL auto-incrementing column type (e.g., SERIAL4). | NpgsqlValueGenerationStrategy.SerialColumn src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs86 |
| Unlogged Table | A table that is not written to the Write-Ahead Log (WAL), making it faster but not crash-safe. | NpgsqlAnnotationNames.UnloggedTable src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs175-176 |
The following diagrams bridge natural language concepts to the specific classes and methods implementing them in the provider.
This diagram shows how a CLR type (e.g., string) is resolved to a PostgreSQL type (e.g., text or citext).
Sources: src/EFCore.PG/Storage/Internal/NpgsqlTypeMappingSource.cs57 src/EFCore.PG/Storage/Internal/NpgsqlTypeMappingSource.cs81-86
This diagram tracks how a LINQ expression is converted into PostgreSQL-specific SQL.
Sources: src/EFCore.PG/Query/Internal/NpgsqlSqlTranslatingExpressionVisitor.cs20-24 src/EFCore.PG/Query/NpgsqlSqlExpressionFactory.cs15-16 src/EFCore.PG/Query/Internal/NpgsqlQuerySqlGenerator.cs51-70
->, ->>, #>) src/EFCore.PG/Query/Internal/NpgsqlSqlTranslatingExpressionVisitor.cs29-30Npgsql.EnableLegacyTimestampBehavior) that reverts DateTime mapping to the pre-6.0 behavior where DateTimeKind was largely ignored src/EFCore.PG/Storage/Internal/NpgsqlTypeMappingSource.cs31-37CREATE DATABASE, where the target database does not yet exist src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs67SEQUENCE after data seeding to prevent primary key collisions src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs71-74Sources: