views:

37

answers:

2

My little SQLite testing application is working, and everything is 100% functioning as expected.

For learning purposes, I'd like to know what library is allowing me to communicate with my Scans.db SQLite database. I was told that I'd need the System.Data.SQLite reference, but my application works and I don't see it referenced anywhere.

My guess is that Entity Framework is somehow wrapping this?

Here's a picture of my current solution:

alt text

Can someone share some light on this? What library is actually letting me access the database?

+3  A: 

As long as the ADO.NET provider for SQLite is properly installed, your project doesn't need to reference it explicitly, because the only SQLite-specific bit of your program is the connection string. Entity Framework knows where to find the provider, based on the information in the machine.config file. It wouldn't work if the provider weren't installed, of course...

Thomas Levesque
Yes, I did download this file: http://sourceforge.net/projects/sqlite-dotnet2/files/. So would you recommend I use a regular library reference to System.Data.SQLite so when I create an installation project it packages everything up nicely?
Serg
That would probably be the simplest option. Otherwise, you need to explicitly include System.Data.SQLite.dll in your installation package.
Thomas Levesque
A: 

System.Data.SQLite assembly is used to access SQLite database from .NET. The assembly contains the unmanaged driver as embedded resource. It is possible that the assembly is installed in the GAC if not present in the bin folder but impossible to connect whitout it.

Darin Dimitrov