C# embedded Db with concurrency and mono support
===

I am writing a service that needs a embedded database to store basic info (id, date inserted, last updated and a large string of my actual data that i will return). I will have multiple threads reading different rows at the same time and at least 1 thread doing updates to rows at the same time. I would prefer the option of more than one thread doing updates but i can service with just one thread been able to do updates.  Basically this is a caching service but generally 99% of my data will be in the cache and i can have a single thread populating what is missing as it is a cache for a service that limits the number of requests per minute hence caching all the data.

I want to be able to run this on windows or linux so dotnet and mono support is a must but almost all embedded databases I have looked at don't support concurrency and that is a must for me. Object database or sql database does not both me as long as it integrates well with dotnet.

I am hoping someone has some experience in a similar situation with needing a embedded database with concurrency support.  Also i would prefer a free (cost wise) database if at all possible as this is just a personal project for home at this stage.