I have a small project that will have 1 user on 1 computer. The database will be rather small (probably less than 1 mb of data). I plan to use WPF and Entity Framework for that project.
I came up with 2 potential database solutions for my project : SQL Server CE and SQL Server Express LocalDB (with SQL Server 2012). I have never worked with any of those, I'm more used to work with the full SQL Server 2008 installation.
I also want it to be easy to install on the client. Ideally I'd like to just throw a bunch of files on a folder (along with my .exe file).
So anybody here could suggest me the best technology to use?
See the Introducing SQL Server Express Local DB Runtime presentation - gives a great overview.
The huge benefit of LocalDB is that it's real SQL Server - it's a special version of SQL Server Express, but it basically supports everything that "real" SQL Server has - spatial data types, stored procedures - you name it.
SQL Server Compact Edition on the other hand is a very much scaled down version - lot of features and datatypes aren't supported. It's smaller and more "agile" - but it lacks a lot of punch.
I personally would pick SQL Server Express with the LocalDB runtime over SQL Server CE 4 - unless you specifically need the tiny size of SQL Server CE (e.g. on a mobile device).
Also see a comparison between SQL Server CE 3.5, CE 4.0, SQL Server Express 2008 R2 and SQL Server 2012 Express LocalDB on ErikEJ's excellent Everything SQL Server Compact web site.
It depends, but based on your requirements (ie very small amount of data and XCopy installation), your only option is SQL Server Compact, as the footprint of SQL Compact on disk is about 18 MB vs 160 MB with LocalDB, and LocalDB requires an administrator install (comes as an MSI only) - but if SQL Server compatibilty is more important, LocalDB is the best choice (as marc_s notes)