LiteDatabase can be initialized using a string connection, with key1=value1; key2=value2; ...
syntax. If there is no =
in your connection string, LiteDB assume that your connection string contains only the Filename
. Values can be quoted ("
or '
) if they contain special characters (like ;
or =
). Keys and values are case-insensitive.
Options
Key | Type | Description | Default value |
---|---|---|---|
Filename | string | Full or relative path to the datafile. Supports :memory: for memory database or :temp: for in disk temporary database (file will deleted when database is closed) [required] |
- |
Connection | string | Connection type (“direct” or “shared”) | “direct” |
Password | string | Encrypt (using AES) your datafile with a password | null (no encryption) |
InitialSize | string or long | Initial size for the datafile (string suppoorts “KB”, “MB” and “GB”) | 0 |
ReadOnly | bool | Open datafile in read-only mode | false |
Upgrade | bool | Check if datafile is of an older version and upgrade it before opening | false |
Connection Type
LiteDB offers 2 types of connections: Direct
and Shared
. This affects how the engine opens the data file.
Direct
: The engine will open the datafile in exclusive mode and will keep it open untilDispose()
. The datafile cannot be opened by another process. This is the recommended mode because it’s faster and cachable.Shared
: The engine will be close the datafile after each operation. Locks are made usingMutex
. This is more expensive but you can open same file from multiple processes.
The Shared mode only works in .NET implementations that provide named mutexes. Its multi-process capabilities will only work in platforms that implement named mutexes as system-wide mutexes.
Example
App.config
<connectionStrings>
<add name="LiteDB" connectionString="Filename=C:\database.db;Password=1234" />
</connectionStrings>
C#
System.Configuration.ConfigurationManager.ConnectionStrings["LiteDB"].ConnectionString