Given your requirements, I would recommend looking at the Entity Framework . It meets almost all of your request / update requirements and works with many databases.
For a single file database that works with EF, you can consider SQL Server CE . Version 4 is currently in beta and handles your only file well, mostly in memory, etc ..
The only thing is that using LINQ with EF, you will get your objects as IQueryable<T>or IEnumerable<T>, as a rule, not as arrays. You can always call .ToArray()to convert to an array, but this is usually not required.
source
share