# EF - Backend vs .NET Datatypes

Here's a list of what datatypes that Entity Framework uses to store .NET datatypes in a couple different database engines.

<table border="1" id="bkmrk-.net-datatype-sql-se" style="border-collapse: collapse; width: 100%; height: 851.634px;"><colgroup><col style="width: 20.0225%;"></col><col style="width: 20.0225%;"></col><col style="width: 20.0225%;"></col><col style="width: 20.0225%;"></col><col style="width: 20.0225%;"></col></colgroup><tbody><tr style="height: 29.7017px;"><td class="align-center" style="height: 29.7017px;">**.NET Datatype**</td><td class="align-center" style="height: 29.7017px;">**SQL Server**</td><td class="align-center" style="height: 29.7017px;">**PostgreSQL**</td><td class="align-center" style="height: 29.7017px;">**SQLite**</td><td class="align-center" style="height: 29.7017px;">**Comments**</td></tr><tr><td style="height: 29.7017px;">bool</td><td style="height: 29.7017px;">bit</td><td style="height: 29.7017px;">boolean</td><td style="height: 29.7017px;">INTEGER</td><td>  
</td></tr><tr><td style="height: 57.6989px;">byte</td><td style="height: 57.6989px;">tinyint</td><td style="height: 57.6989px;">smallint

(Postgres lack tinyint)

</td><td style="height: 57.6989px;">INTEGER</td><td>  
</td></tr><tr><td style="height: 29.7017px;">short</td><td style="height: 29.7017px;">smallint</td><td style="height: 29.7017px;">smallint</td><td style="height: 29.7017px;">INTEGER</td><td>  
</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">int (32-bit)</td><td style="height: 29.7017px;">int</td><td style="height: 29.7017px;">integer</td><td style="height: 29.7017px;">INTEGER</td><td style="height: 29.7017px;">  
</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">long (64-bit)</td><td style="height: 29.7017px;">bigint</td><td style="height: 29.7017px;">bigint</td><td style="height: 29.7017px;">INTEGER</td><td style="height: 29.7017px;">  
</td></tr><tr style="height: 57.6989px;"><td style="height: 57.6989px;">decimal</td><td style="height: 57.6989px;">decimal(18,2)</td><td style="height: 57.6989px;">numeric(18,2)

Adjustable for domain

</td><td style="height: 57.6989px;">REAL</td><td style="height: 57.6989px;">  
</td></tr><tr><td style="height: 29.7017px;">float</td><td style="height: 29.7017px;">real</td><td style="height: 29.7017px;">real</td><td style="height: 29.7017px;">REAL</td><td>  
</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">double</td><td style="height: 29.7017px;">float</td><td style="height: 29.7017px;">double precision</td><td style="height: 29.7017px;">REAL</td><td style="height: 29.7017px;">  
</td></tr><tr><td style="height: 29.7017px;">Guid</td><td style="height: 29.7017px;">uniqueidentifier</td><td style="height: 29.7017px;">uuid</td><td style="height: 29.7017px;">TEXT</td><td>  
</td></tr><tr><td style="height: 29.7017px;">string</td><td style="height: 29.7017px;">nvarchar(max)</td><td style="height: 29.7017px;">text</td><td style="height: 29.7017px;">TEXT</td><td>  
</td></tr><tr><td>char</td><td>nchar(1)</td><td>char(1)</td><td>TEXT</td><td>  
</td></tr><tr><td style="height: 29.7017px;">byte\[\]</td><td style="height: 29.7017px;">varbinary(max)</td><td style="height: 29.7017px;">bytea</td><td style="height: 29.7017px;">BLOB</td><td>  
</td></tr><tr style="height: 46.5057px;"><td style="height: 46.5057px;">DateTime</td><td style="height: 46.5057px;">datetime2</td><td style="height: 46.5057px;">timestamp without time zone</td><td style="height: 46.5057px;">TEXT

Use ISO-8601 text for SQLite

</td><td style="height: 46.5057px;">  
</td></tr><tr style="height: 46.5057px;"><td style="height: 46.5057px;">DateTimeOffset</td><td style="height: 46.5057px;">datetimeoffset</td><td style="height: 46.5057px;">timestamp with time zone</td><td style="height: 46.5057px;">TEXT</td><td style="height: 46.5057px;">  
</td></tr><tr style="height: 29.7017px;"><td style="height: 29.7017px;">TimeSpan</td><td style="height: 29.7017px;">time</td><td style="height: 29.7017px;">interval</td><td style="height: 29.7017px;">TEXT</td><td style="height: 29.7017px;">  
</td></tr><tr style="height: 102.5px;"><td style="height: 102.5px;">JsonDocument /

Dictionary&lt;string, object&gt;

</td><td style="height: 102.5px;">nvarchar(max)

SQL Server has no native JSON type; EF stores as text.

</td><td style="height: 102.5px;">jsonb

Native JSON support

</td><td style="height: 102.5px;">TEXT</td><td style="height: 102.5px;">  
</td></tr><tr style="height: 80.0994px;"><td style="height: 80.0994px;">object</td><td style="height: 80.0994px;">sql\_variant

Only if configured manually

</td><td class="align-center" style="height: 80.0994px;">jsonb

Native JSON support

</td><td class="align-left" style="height: 80.0994px;">TEXT</td><td style="height: 80.0994px;">  
</td></tr></tbody></table>