System.Data.SQLite
View Ticket
Not logged in
Ticket UUID: e634e330a6c9afad2eeccc02cb06e84679fa699d
Title: Support for EF 6.1.0 EDMX Wizard broken
Status: Closed Type: Incident
Severity: Important Priority: Blocker
Subsystem: NuGetPackage Resolution: Fixed
Last Modified: 2014-09-15 18:24:20
Version Found In: 1.0.93 / 1.0.94-pre
User Comments:
anonymous added on 2014-07-28 08:11:37:
Repro:
Install 1.0.93 to VS 2013
Install EF 6.1.1 Tools in VS 2013
Create new console project
Add System.Data.SQLite.EF6 NuGet package
Build project
Connect to Chinook_Sqlite.sqlite in Server Explorer
Add, 
New Item, 
ADO.NET Entity Data Model, 
EF designer from Database, 
Select Chinook_Sqlite

Expected: Show tables etc. in SQLite database for selection
Acutual: "Your project references the latest version of Entity Framework; however, and Entity Framwork database provider compatible with this version could not be found for your data connection"

mistachkin added on 2014-07-28 18:14:11:
Currently, the System.Data.SQLite NuGet packages support EF 6.1.0, not 6.1.1.

mistachkin added on 2014-07-30 21:54:30:
Attempting to reproduce on Windows 8.1 using Visual Studio 2013.

mistachkin added on 2014-07-31 00:06:37:
Setup needed is "sqlite-netFx451-setup-bundle-x86-2013-1.0.93.0.exe".

mistachkin added on 2014-07-31 00:35:38:
I'm seeing the reported version conflict.

mistachkin added on 2014-07-31 01:12:37:
This issue appears to be unique to Visual Studio 2013.  The Entity Framework 6
support components work perfectly on the target machine; however, the wizard
within Visual Studio appears unable to find (or validate?) them.

mistachkin added on 2014-07-31 04:10:01:

I've found the cause of the issue. Apparently, the Entity Framework tooling in
Visual Studio 2013 needs the System.Data.SQLite ADO.NET data provider setting in
the registry to point to the System.Data.SQLite.EF6 assembly.

For 32-bit Windows operating systems, the setting is:

[HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\12.0\DataProviders\{0ebaab6e-ca80-4b4a-8ddf-cbe6bf058c70}]
"InvariantName"="System.Data.SQLite.EF6"

For 64-bit Windows operating systems, the setting is:

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\12.0\DataProviders\{0ebaab6e-ca80-4b4a-8ddf-cbe6bf058c70}]
"InvariantName"="System.Data.SQLite.EF6"


mistachkin added on 2014-07-31 04:12:50:
I've attached the necessary ".reg" files to make the setting adjustments, for
both 32-bit and 64-bit Windows (i.e. the "wow64" one is only for use on 64-bit
operating systems).

mistachkin added on 2014-07-31 05:50:48:
The check-in [bc7c43a0b4] on trunk should "fix" this issue as long as the EF6
assembly itself is installed into the global assembly cache prior to running
the System.Data.SQLite setup package.  I'm also looking into a way to make it
work without putting the EF6 assembly in the global assembly cache.

mistachkin added on 2014-08-01 03:31:42:
More work is underway on the [/timeline?r=designOptions] branch.

mistachkin added on 2014-08-06 03:30:45:
I deleted the new ticket regarding the ".reg" files not working.  Using the files
also requires registering the System.Data.SQLite.EF6 assembly into the GAC, via
using the following command at an Administrator Visual Studio command prompt:

gacutil /i System.Data.SQLite.EF6.dll

mistachkin added on 2014-09-09 18:16:51:
Were there any error messages?

Could you provide more details about the target system and the log files from
the installation, etc?

The log files should be located in the %TEMP% directory on the target machine.
They will have names similar to "Setup Log 2014-09-08 #001.txt" and
"Installer.exe.trace.tmp29.log".

Any other additional information you could provide would be useful as well.

mistachkin added on 2014-09-13 21:15:42:
Steps to reproduce the current issue:

Phase #1: Design-Time components smoke testing.

0.   Semi-clean box, Windows 8.1 x64 with Visual Studio 2013.
1.   Installed "sqlite-netFx451-setup-bundle-x86-2013-1.0.94.0.exe".
2.   Launch Visual Studio 2013.
3.   Open Server Explorer Window.
4.   Right-click Data Connections, click Add Connection.
5.   Select System.Data.SQLite provider, uncheck "always use this provider".
6.   Click Continue.
7.   Select an existing SQLite database with tables, FKs, etc.
8.   No other options are selected on this dialog (e.g. encoding, etc).
9.   The "provider" combo box has "System.Data.SQLite.EF6" pre-selected.
10.  Click Ok and the database is added to the list of Data Connections.

Phase #2. Design-Time support for EF6 smoke testing.

0.   No solution open, Visual Studio 2013 Update 2 RTM.
1.   File, New Project, Visual C# Console Application.
2.   Save All from the file menu.
3.   Right-click project in Solution Explorer Window.
4.   Select Manage NuGet Packages and search for "System.Data.SQLite".
5.   Select and install the "System.Data.SQLite.Test" package.
6.   Accept Entity Framework 6 license.
7.   Close Manage NuGet Packages dialog.
8.   Right-click project and "Add New Item".
9.   Select "ADO.NET Entity Data Model".
10.  Select "EF Designer from database".
11.  The SQLite database added in Phase #1 does not appear.  FAIL

mistachkin added on 2014-09-15 18:24:20:
Confirmed fixed by original reporter via email.

Attachments: