Entities (*Base) overview
Every business object's *Base class is a pure EF Core model: no UI, authorization, or
navigation attributes — those live exclusively on the paired *Dto (see
DTOs & Validators). This split keeps *Base classes safe to reuse from jobs,
importers, and migrations without dragging in UI concerns.
Common conventions across every *Base class:
Idis aGuid(sequential v7, viaGuidV7ValueGenerator) — noint/longsurrogate keys for business entities, ever.- Dictionaries and documents redeclare their contract properties (
Code/NameforIDictionaryEntity,Code/DateTimeforIDocumentEntity) asoverrideon the concrete class, so each entity can attach generator-relevant attributes to them individually. - Marker attributes (
[KandraDictionaryEntity],[KandraDocumentEntity],[KandraRegisterEntity],[KandraReportEntity],[KandraDataProcessorEntity]) are whatKandra.Generators.EfConfigandKandra.Generators.Di.*discover to emitIEntityTypeConfiguration<T>and DI registration blocks — see Source Generators.
See Generated API Reference for the concrete base class hierarchy
(DictionaryBase, DocumentBase, register base types) once the XML doc sync has run.