Depending on the applications use, I would recommend using SQL Lite because it doesn’t require you to install any other software (SQL CE or Express, etc. usually would require a separate install).
A list of the most important benefits for SQL Lite from the provider link at the bottom of this post:
SQLite is a small C library that
implements a self-contained,
embeddable, zero-configuration SQL
database engine. Features include:
- Zero-configuration – no setup or
administration needed.- Implements most of SQL92. (Features
not supported)- A complete database is stored in a
single disk file.- Database files can be freely shared
between machines with different byte
orders.- Supports databases up to 2 terabytes
(2^41 bytes) in size.- Small code footprint: less than 30K
lines of C code, less than 250KB
code space (gcc on i486)- Faster than popular client/server
database engines for most common
operations.- Simple, easy to use API.
- Self-contained: no external
dependencies.- Sources are in the public domain.
Use for any purpose.
Since you’re using WPF I can assume you’re using at least .NET 3.0. I would then recommend going to .NET 3.5 SP1 (sames size as .NET 3.5 but includes a bunch of performance improvements) which includes LINQ.
When using SQLite, however, you would want to use the following SQLite Provider which should provide LINQ support: An open source ADO.NET provider for the SQLite database engine