Siaqodb 5.0 Retail » Developer.Team

Siaqodb 5.0 Retail

Siaqodb 5.0 Retail
Siaqodb 5.0 Retail | 6 Mb


Siaqodb is a NoSQL embedded object and document database engine that currently runs on .NET, MonoMac, Universal Windows Platform (UWP), Xamarin.iOS, Xamarin.Android, Xamarin.Mac and Unity3D. Siaqodb client side database may be synchronized with a Cloud/Server side database using our Sync Framework provider.

Features
ObjectDB and DocumentDB – objects of an object graph may be stored individually or as a single unit called document.
fully ASYNC API
ACID transactions – uses a powerful storage engine: LMDB
small footprint, no extra dependencies
built-in or plug-able encryption support
SiaqodbManager – managed stored data, run ad-hoc LINQ queries

Developers goodies
full LINQ provider
full POCO support
Portable Class Library support
partial object loading and eager loading
may store full object graphs, Arrays, Lists, Dictionaries, etc.
thread safe – full support for ASP.NET based apps

Add a Reference to Siaqodb DLLs

Right click on the References folder in Visual Studio's Solution Explorer and select Add Reference.... Navigate to the folder where the DLLs were installed, choose from /bin folder the platform you are using and add DLLs from respective folder (example for .NET 4.5 platform):

Siaqodb.dll
SiaqodbPortable.dll

LINQ provider

We have implemented a LINQ provider for Siaqodb. LINQ is the default and the only (public for client code) query engine available. What does the LINQ provider really mean for Siaqodb and why is it important to know how it works for Siaqodb?

In general a LINQ provider translates LINQ queries into specific API calls against a data source. It enables you to write LINQ queries in C#, and have those queries executed based on the native language of the data source. LINQ for Siaqodb translate a lambda expression passed in to an internal query and based on that query, data is pulled from the database and provided to the client code. There are two main techniques to implement a LINQ provider:

Implementing the IQueryable interface
By re-defining IEnumerable LINQ extension methods for a custom interface that inherits from IEnumerable

This query gets transformed into an internal Where object. The engine looks up if Age is an indexed field, if so, it takes all the OIDs for the key with value 30, it builds the objects associated to these OIDs, hydrates them and returns them to the caller. If the Age field is not indexed, the query is still optimized by fetching ONLY the Age field for each object in order to determine which objects have an age of 30. Only matching objects are created, hydrated and returned to the caller.

[/b]

[b] Only for V.I.P
Warning! You are not allowed to view this text.
SiteLock