Coincidental is a db4o concurrency and persistence wrapper for C# that provides concurrent-read/single-write access to objects for use in web-based game engines. It provides automatic transparent persistence without requiring post-build manipulation.

From the project page: "During initial development of the browser-based game engine Henge it became apparent that an object database was required since a standard SQL database (even when using a persistence layer such as NHibernate) would not be suitable. It was decided to use db4o since it handles complex object graphs efficiently and is extremely simple to use.
However, db4o does not employ any form of optimistic/object locking since it is primarily intended for embedded use. Henge also had a requirement above and beyond optimistic locking that would ensure all object modifications get applied, not simply overwritten."

The wrapper was designed to permit object locking and also supports concurrent reading (vital for a web-based game engine). It also provides transparent activation and persistence without the need to perform post-build assembly instrumentation via the Db4oTool. This is achieved through automatic object proxying making use of the Castle DynamicProxy library.

Source code is available here. See the readme for more information.