Well the three suggested databases are very different in their nature. SQLCE with Hibernate as RDBMS with a ORM, db4o as object database and RavenDB as document database. Each of them has its strengths.
SQL CE & NHibernate-Combo
The good:
- Extremely good support in tooling, the knowledge and a big community is there
- Easy to upgrage to MS SQL servers
- Extrem good reporting support
- The power of SQL
The bad:
- Needs mapping
- The mapping between the OO and relational world is not easy and can lead to issues with complex models.
RavenDB
The good:
- Doesn't need any mapping
- Easy to use
- Powerful indexing
- JSON & HTTP access
The bad:
- If your domain doesn't fit to a document-oriented approach, it will be quite painful
- It does not support the .NET Framework Client Profile (which is of particular importance as the OP's question is concerning embedded databases)
db4o
The good:
- Doesn't need any mapping
- Easy to use
- The storage model is close the object-model. This also works for very complex models.
-
The bad:
Afaik all three support LINQ and POCO-first approach. However since NHibernate & SQL CE still need tons of mapping its not as friction free as it could be.
I think if your focus is on POCO first, LINQ-support, ebedded usage and easy to use, I would try RaveDB or db4o.
If your focus is on 'safety', community-knowledge, tool-support and reporting I would go with NHibernate and SQL CE.