Store Entity Framework Core SQLite file in project-relative subdirectory


I have an ASP.NET Core 2.0 app using Entity Framework Core and the SQLite Provider. I am trying to store the SQLite database file in a subdirectory (specifically data\database\sqlite.db) however if I set the Connection String to Data Source=data\database\sqlite.db I get the following exception as soon as I run dbContext.Database.Migrate():

Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.

If I set it to Data Source=sqlite.db it works as expected without throwing exceptions (but not in the directory I need it to be stored in). What do I need to do to store the SQLite database file in a sub-directory relative to the current working directory?

For the sake of context: I need the SQLite database file stored in a sub-directory because this app is running in a Docker Container, this specific directory is mapped to a Docker volume so the database persists when the container is replaced.

asked on Stack Overflow Mar 30, 2018 by TC Fox

1 Answer


You should modify to "Data Source=./data/database/sqlite.db"

"DefaultConnection": "DataSource=./data/database/sqlite.db"

answered on Stack Overflow Aug 30, 2019 by Glauco Silva Alves • edited Aug 30, 2019 by tituszban

User contributions licensed under CC BY-SA 3.0