I worked on this for several hours today before figuring it out. The NuGet package adds the appropriate entry “System.Data.SQLite.EF6” into the EntityFramework provider factories, but you have to remove or comment out the old “System.Data.SQLite” entry. The EF context builder blows up if any of the provider entries are invalid, and the old 1.0.91 SQLite provider is not supported in EF6.
EDIT: Cleaning up the config allowed my other context objects (SQL Server) to instantiate, but it still won’t instantiate the SQLite context objects correctly. The inner exception is
Unable to find the requested .Net Framework Data Provider. It may not
be installed.
EDIT 2/SOLUTION
Finally figured it out! I think there’s an issue in System.Data.SQLite that is forcing a reference to the System.Data.SQLite provider name rather than the value provided in the connection string. I was able to work around this by creating two entries in the EntityFramework provider section, one named “System.Data.SQlite”, and one named “System.Data.SQLite.EF6”, but both providers actually use the EF6 provider.
<entityFramework>
...
<providers>
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.91.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.91.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</providers>