From flat list to tree in one line of C#
A quick look at turning a flat collection with parent references into a navigable hierarchy, without writing recursion yourself.
Patterns, gotchas and small wins from building the Regira packages and modules — entity pipelines, editorial front-ends and everything between.
A quick look at turning a flat collection with parent references into a navigable hierarchy, without writing recursion yourself.
Three escalating strategies for self-referencing entities in EF Core — from ParentId filters to recursive CTE table-valued functions composed inside your query pipeline.
A complete console tool that copies files between local disks, network shares and Azure Blob Storage — driven entirely by appsettings.json, built on a single storage abstraction.
How to make tenant isolation a property of the data layer instead of a discipline problem — with a real multi-tenant fleet-management API as the case study.
Using a domain everyone knows to stress-test a stakeholder model — people, houses, sworn banners and shifting alliances — and rendering the result as a navigable tree.
How ?brandId=1&hasIntervention=true becomes SQL: one typed object that names your filters, one small builder that translates them - the foundation of the read pipeline, with a runnable sample to curl along.
The full read surface a registration exposes, why counts live next to pages, and how POSTing an array of SearchObjects gives OR a principled home - closing out the filtering series.
Why WHERE Title LIKE '%josé%' fails four ways, and how normalizing at save time - one attribute, one helper - gives you a search box that matches 'mercedes' to 'Mercedes-Benz' on a plain indexed column.
One interface turns DELETE into soft delete: archived rows vanish from every query, stay reachable on purpose via ?archived=, and come back with a plain save - every step runnable against the sample API.
The rest of the read pipeline: repeatable sort enums (and the OrderOrThenBy trap), flags-enum includes that keep list payloads lean, and page-size clamps enforced once at the HTTP boundary.
How to turn ?brand=volvo&hasIntervention=true into safe, index-friendly SQL — a deep dive into typed search objects, query builders, global filters, normalized free-text search and union queries.
Cross-cutting predicates - id filters, soft delete, tenancy - registered once against an interface and provably applied everywhere, including the key-type mechanics that keep security defaults from silently dropping.