What problem does it solve?
Developers struggle with vendor lock-in and complex code changes when switching or integrating multiple data providers (SQL, NoSQL, Vector). This Skill eliminates that complexity, allowing a single codebase to work across diverse data stores.
Core Features & Use Cases
- Provider Transparency: Write entity code once, run it on PostgreSQL, MongoDB, SQLite, Redis, Weaviate, or JSON stores without code changes.
- Capability Detection: Dynamically check what features (LINQ, transactions, fast remove) a provider supports and implement graceful fallbacks.
- Context Routing: Isolate data logically using partitions (multi-tenancy, archives) or route to different physical sources (read replicas, caches).
- Use Case: Easily switch your application from a local SQLite database to a production PostgreSQL cluster, or integrate a Redis cache and a Weaviate vector database, all without rewriting your core data access logic.
Quick Start
To check if your current data provider supports LINQ queries for the 'Todo' entity, use:
var capabilities = Data<Todo, string>.QueryCaps;
if (capabilities.Capabilities.HasFlag(QueryCapabilities.LinqQueries)) { /* use LINQ / }
else { / client-side filter */ }