SisoDb has now reached v4.0.0 and it has gone throw some heavy changes. Let’s take a look at the release notes.
v4.0 Major rewrite. The generation of StructureSchemas and Structures (graph of indexes) now lives in project: PineCone. http://github.com/danielwertheim/pinecone The querying table (Indexes) is now key-value which will open up for better querying support. Reworked internals to become more generic to simplify writings of additional providers. [Fixed] A connection could sometimes get left in a open state. [Fixed] Bug when Including other Json documents in the same result (Merged Documents). [Updated] ServiceStack.Text updated from v2.2.7 to v3.0.0. [Updated] SisoId is now StructureId both in classes as well as in storage schema. [Updated] Storage schema for Indexes are now key-value. [Updated] Storage schema for Uniques now have UqMemberPath instead of UqName [Updated] All members of QueryEngine and UnitOfWork taking Enumerable of Ids, now takes param array of ids instead. E.g. GetByIds, DeleteByIds etc [Updated] StructureSetUpdater should not be used individually, but via Database.UpdateStructureSet. [Updated] The support for how Uniques are handled has been changed. The property marked as unique is turned into a hashed string before stored. That way we get uniformed lenght strings. [Updated] As a security precausion, DeleteByIdInterval is now only supported when you use Identities and not Guids. [New] SqlCE4 support, except from TransactionScopes. Support is on its was. NORMAL TRANSACTIONS ARE OF COURSE SUPPORTED THOUGH! [New] The Id (previous SisoId) now StructureId now does support Guid, int, long and Nullable, Nullable, Nullable [New] HashSets and Dictionaries are now supported [New] Extensionpoints for QueryEngine and UnitOfWork now exists on ISisoDataBase via ReadOnce() and WriteOnce(). These simpliefies working with QueryEngine/UnitOfWorks BUT SHOULD ONLY BE USED WHEN DOING ONE OPERATION AGAINST QueryEngine or UnitOfWork.
It’s not backwards compatible, hence v.4.0.0
No, it’s not backwards compatible. The underlying database schema that previously had a flattened view of your structures now is key-values. Why? Well, I wan’t the ability of constructing SQL queries that supports nested enumerables etc. Of course, the key-value solution will cause a hit in the performance, but if it’s really critical to you, you can turn off indexing for the members you don’t query on.
I will start updating the documentation shortly at SisoDb.Com