What is NMemory?
NMemory is a non-persistent in-memory relational database engine that implements most of the traditional database features. Originally it was developed by a student group in the
Department of Automation and Applied Informatics of
Budapest University of Technology and Economy as the "MMDB" project.
What interface does it provide?
Basically it has a strongly typed Linq interface that makes possible to define data operations in a very
What features does it have?
- Relational tables
- Foreign key relationship
- Query, update, insert, delete
- Field constraints
- Transaction logs (rollback, commit)
- Transaction isolation
- Coarse-grained locking (table locks)
- Enlistment on ambient transaction
- Query optimization and compilation
- Customizable database engine
Is it an object oriented database?
No, it is just like a traditional relational database. However, with the use of Entity Framework and the
Effort library you can easily wrap it with an object oriented layer.
Is it persistent?
No, it does not write data to any persistent media, this follows that your data will surely be dismissed if your process is terminated.
What is it meant for?
Its main purpose is to serve as the core component of the
Effort library, so definitely this task drives its feature list at the moment.
In which areas does it lack functionality?
Transaction isolation currently lacks fined grained locking.
Unfortunatelly most of the query optimizer sources was not mature enough to include in a public release, so the optimizer is quite