Embedding MySQL in .NET program.
I wish to embed MySQL database in a .NET SW. MySQL have a embedded product, but it is a C++ library, which really don't want to use directly. Does any one know of a .NET library, or even a managed C++ wrapper for this API I can use?
Thanks!

Comments
Got an answer from MySQL support. They'll have this possibility only in the next version of the Connector/NET (7.0). The support person refuse to let me know when this release is expected, but he would tell someone that has a premium license / subscription ...
Unless you are not using ADO.NET, whats wrong with:
"Connector/NET enables developers to easily create .NET applications that require secure, high-performance data connectivity with MySQL. It implements the required ADO.NET interfaces and integrates into ADO.NET aware tools. Developers can build applications using their choice of .NET languages. Connector/NET is a fully managed ADO.NET driver written in 100% pure C#. "
http://dev.mysql.com/doc/refman/5.1/en/connector-net.html
OR
"dotConnect for MySQL, formerly known as MyDirect .NET, is an enhanced data provider for MySQL that builds on ADO.NET technology to present a complete solution for developing MySQL-based database applications. As part of the Devart database application development framework, dotConnect for MySQL offers both high performance native connectivity to the MySQL database and a number of innovative development tools and technologies.
dotConnect for MySQL introduces new approaches for designing application architecture, boosts productivity, and leverages database application implementation. "
http://www.devart.com/dotconnect/mysql/
and also : http://www.codeproject.com/KB/database/MySql_with_Ent_Lib.aspx
The second link helps a lot. Their dotConnect for MySQL supports working with MySQL Server Embedded, which interests me. Will look into it and report how it worked.
The first link points to another very good library that will support this feature in its next version.
And why are you limiting yourself to MYSQL? is this a restriction posed by the client?
If not there are other (bettre ..) choices for small memory footprint DBs with .NET support, for instance:
http://www.samsaffron.com/blog/archive/2007/02/16/7.aspx
http://www.mcobject.com/
Also, see the experience of other developers (scroll down)
http://weblogs.asp.net/jgalloway/archive/2005/07/08/418474.aspx
Happy holiday :)
Thanks for the references - I will need them. MySQL is not a limitation, but another product I review.
I also look into several other relational databases such as SQLite and MS SQL CE, as well as other types of databases, such as Berkeley DB, and Perst.
The small research I perform includes benchmarks, as well as features, limitations, and licensing review.
Thanks again!
3 years ago I've committed myself in a huge benchmark(practical test suite), comparison of several embedded databases,
(but working with java),
the 2 leaders I've found were Derby and PointBase, but Derby was a bit better!
Just a short update.
I test these databases to see how well they handle 10's of millions of records, holding ~ 4 tables, each contains 13 fields, half numbers, and half string (varies between 16 and 256 characters), on a medium to low end hardware. I currently test all the databases on my laptop, Pentium dual core 1.46GHz, with a (very) slow disk.
Databases I tested so fer:
- MS SQL CE - did not performed well (took the bulk insert several hours run), and due to its 4GB limitation it could not contain all of the data.
- MySQL - did performed better, and still under evaluation.
- Firebird - performed as MS SQL CE.
- SQLite - very good performance, still under evaluation.
Next, I started to think about non-relational databases, like Berkeley DB, and eXtreme DB. Udi help me a lot by providing some more: Cassandra, Mongo DB, Couch DB, and Tokyo Cabinet.
So far I tested Mongo DB, which performed very well. It has a 2GB size limitation on 32 bit platforms...
I'm now in the process of evaluating Berkeley DB, so I'll see how it gos...
Thanks everyone for your advice, it helped a lot.
Be aware though, that in my tests I always use a c# program to access the database, and manipulate the data, so working with other languages and technologies might provide different numbers, mostly because of the different drivers and libraries used for accessing the databases.