Regira Engineering Blog

Notes on .NET, TypeScript & Vue

Patterns, gotchas and small wins from building the Regira packages and modules — entity pipelines, editorial front-ends and everything between.

9 articles #dotnet ×
Data & EF Core / Architecture

Querying hierarchies at any depth: recursive SQL functions meet an in-memory TreeList

Three escalating strategies for self-referencing entities in EF Core — from ParentId filters to recursive CTE table-valued functions composed inside your query pipeline.

Pinned 18 min read
Data & EF Core / Architecture

Row-level multi-tenancy in ASP.NET Core: one marker, one filter, one primer

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.

11 min read
.NET / Architecture

Game of Thrones as a data model: parties, typed relationships, and a TreeList of alliances

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.

Pinned 33 min read
Data & EF Core / Architecture

Filtering in Regira Entities: the basics

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.

Pinned 6 min read
Data & EF Core / Architecture

AND, OR and the endpoints

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.

3 min read
Data & EF Core / Architecture

Free-text search that hits the index

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.

3 min read
Data & EF Core / Architecture

Archiving: delete without losing data

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.

3 min read
Data & EF Core / Architecture

Sorting, includes and paging, all typed

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.

4 min read
Data & EF Core / Architecture

Global filters: the rules every query obeys

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.

4 min read