F# can upcast types to `obj` if those types are used in place. However, a `string seq` (`IEnumerable<string>` in C#) cannot be upcast to an `obj seq` (`IEnumerable<object>`) without mapping each item in the sequence. Making the `Field` constructor functions generic will allow them to take any object type, and these functions handle the conversion to `obj` (for `In` and `InArray`; others work transparently). Reviewed-on: #8
BitBadger.Documents.Common
This package provides common definitions and functionality for BitBadger.Documents
implementations. These libraries provide a document storage view over relational databases, while also providing convenience functions for relational usage as well. This enables a hybrid approach to data storage, allowing the user to use documents where they make sense, while streamlining traditional ADO.NET functionality where relational data is required.
BitBadger.Documents.Postgres
(NuGet) provides a PostgreSQL implementation.BitBadger.Documents.Sqlite
(NuGet) provides a SQLite implementation
Features
- Select, insert, update, save (upsert), delete, count, and check existence of documents, and create tables and indexes for these documents
- Addresses documents via ID and via comparison on any field (for PostgreSQL, also via equality on any property by using JSON containment, or via condition on any property using JSON Path queries)
- Accesses documents as your domain models (POCOs)
- Uses
Task
-based async for all data access functions - Uses building blocks for more complex queries
Getting Started
Install the library of your choice and follow its README; also, the project site has complete documentation.