I am developing a C# application with EntityFramework and CodeFirst model. I would like to have a local database on each machine and each application installation. What I mean is that when User X installs the application on his machine the application should create and use a local database file. I tried with SQLite but I had no luck making it work with the following connection string and dbFactory in my app.config
<connectionStrings>
<add name="FaceBotDb"
connectionString=
"Data Source=|DataDirectory|FaceBotDb.sqlite"
providerName="System.Data.SQLite" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description="Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
I get exception of the sort "invariant must be unique". My main question is if SQLite is my best choice in such case. Is there any other Database which can use EntityFramework and store it's files locally. Please note that I can use SQLite with pure ADO.NET but that's going to happen only if I have no other choice since EF has a lot of benefits.