views:

580

answers:

5

I need an embedded database for one of our .net applications.

This database should support sql (Unlike Berkley).

Can anyone suggest any options.

+6  A: 

The major options I think are:

CMS
don't forget the kickass sqlite driver for .net: http://sqlite.phxsoftware.com/
Brendan Kowitz
just an article about entity framework and Firebird embeddedhttp://www.firebirdnews.org/?p=2665
Hugues Van Landeghem
+1  A: 

Have a look at SQL Server Compact edition. It runs in-proc, it is a single binary and it stors its data in a single file, and it supports concurrency (unlike many other embedded DBs, including SQLite). Plus you probably already have it if you're using Visual Studio. Finally, it is free to use and redistribute.

fatcat1111
Nice integration with tools. What is the license requirement? cost?
Cheeso
+1  A: 

SQL Server Compact Edition is the smart choice for .NET compact framework. I found Arcane Code to be a very helpful site for learning SSCE. He is an MVP for SQL Server and focuses on CE.

BikeMrown
You can create only tables and indexes in CE
Hemanshu Bhojak
A: 

I really like FirebirdSQL myself (Also mentioned by CMS). It can run embedded with the windows dll's, iirc there's even a mixed binary with the core driver built in for this. It works well with ActiveRecord, and NHibernate as well. Most .Net types map easily.

One advantage over other options, is switching to a RDBMS mode is only a matter of changing the querystring to use a server, instead of the embedded version. You can also run with it in Linux (unfortunately not in embedded mode), if you have any desire to target Mono in the future.

Tracker1
+3  A: 

I just wanted to chime in late here with more information on VistaDB.

Our SQL Syntax is very close with SQL Server syntax, and we include TSQL and CLR Stored Procs.

Runs in process with your application, and you only have to deploy 1 assembly for both 32 and 64 bit (100% managed code). You can't do this with SQL CE since you have different unmanaged assemblies that have to be deployed.

You can embed VistaDB with your app and even ILMERGE it, change the database name, etc to fully hide the engine from your users (some people are real big on this).

And yes it can also run on Mono since it is 100% managed code. There are still a few issues (including non-Intel Mono machines).

Full disclosure - I am the owner of the company

Jason Short