dotConnect for SQLite Documentation
Entity Framework Data Type Mapping

SQLite to .NET type mapping

Type mapping rules from this table are used when generating a model from a database with Entity Data Model Wizard in Visual Studio 2008 - 2023 and Create Model Wizard in Entity Developer.

SQLite data types

SSDL1

CSDL1

.NET

boolean boolean Boolean System.Boolean
tinyint tinyint Byte System.Byte
smallint, int16 smallint Int32 System.Int16
int, int32 int32 Int32 System.Int32
INTEGER, int64 integer Int64 System.Int64
REAL real Double System.Double
NUMERIC, decimal, money, currency numeric, decimal, money, currency Decimal System.Decimal
date, time, datetime, smalldate date, time, datetime, smalldate DateTime System.DateTime
datetimeoffset datetimeoffset DateTimeOffset System.DateTimeOffset
time time Time System.TimeSpan
TEXT, ntext, char, nchar, varchar, nvarchar, string text, ntext, char, nchar, varchar, nvarchar, string String System.String
BLOB, binary, varbinary, image, general blob, binary, varbinary, image, general Binary System.Byte[]
guid guid Guid System.Guid

1 Note that when mapping corresponding database data type, you will need the .NET type with larger precision. That is because, for example, any Int32 value can be stored in the NUMBER(10) column, but largest NUMBER(10) column value cannot be stored in the Int32 field, it requires Int64 field.

.NET to SQLite default type mapping

.NET

CSDL1

SSDL1

SQLite data types

System.Boolean Boolean boolean boolean
System.Byte Byte tinyint INTEGER
System.Byte[] Binary blob BLOB
System.DateTime DateTime datetime datetime
System.DateTimeOffset DateTimeOffset datetimeoffset datetimeoffset
System.Decimal Decimal numeric NUMERIC
System.Double Double real REAL
System.Guid Guid guid guid
System.Int16 Int16 smallint INTEGER
System.Int32 Int32 int32 INTEGER
System.Int64 Int64 integer INTEGER
System.SByte SByte sbyte INTEGER
System.Single Single single REAL
System.String String text TEXT
System.TimeSpan Time time time

1 Note that when mapping corresponding database data type, you will need the .NET type with larger precision. That is because, for example, any Int32 value can be stored in the NUMBER(10) column, but largest NUMBER(10) column value cannot be stored in the Int32 field, it requires Int64 field.