Welcome to the DataLinq documentation! This index is designed to help you quickly find the resources you need—whether you’re just starting to use DataLinq or diving into advanced customization and backend development.
Provides an overview of the DataLinq CLI tool and its commands (create-database
, create-sql
, create-models
, list
) along with usage examples.
Describes the structure and options for datalinq.json
and datalinq.user.json
, explaining how to configure your database connections, model generation settings, and more.
Outlines DataLinq’s overarching goals, design principles, and architectural vision.
Offers an in-depth overview of the library’s core components, covering caching, mutation, query processing, and general design decisions.
Explains how DataLinq maps databases to C# models through its metadata model—covering tables, columns, relationships, and more.
Describes how DataLinq’s source generator creates immutable and mutable model classes from the metadata, minimizing boilerplate and ensuring consistency.
Details how LINQ expressions are converted into backend-specific SQL, including an explanation of expression visitors and other helper classes.
A dedicated guide to DataLinq’s caching architecture (including the primary-key-first approach) and mutation workflow (immutable data, transactional updates, commits, and rollbacks).
Walks through creating support for additional data sources by implementing metadata readers, SQL generation logic, and data read/write classes behind DataLinq’s provider interfaces.
-
Contribution Guidelines
A guide for new contributors covering coding standards, how to run tests, and submission guidelines. -
Testing & Benchmarking (TBD)
Documentation detailing how to run and write tests for DataLinq, as well as interpret performance benchmarks. -
FAQ / Troubleshooting (TBD)
A list of frequently asked questions, common issues, and troubleshooting tips. -
Migration & Extensibility (TBD)
Guidance on migrating from earlier versions or more advanced customizations—some aspects are partially covered in “Implementing a new backend.”