> Markdown version of [/videos/100218-dynamic-entities-in-net-building-low-code-systems-on-top-of-entity-framework-core?t=1208](https://www.wearedevelopers.com/videos/100218-dynamic-entities-in-net-building-low-code-systems-on-top-of-entity-framework-core?t=1208). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Dynamic Entities in .NET: Building Low-Code Systems on Top of Entity Framework Core Stop sacrificing query performance to the Entity-Attribute-Value trap. Discover how to build dynamic, performant low-code systems entirely on EF Core using hybrid JSON mappings and runtime rebuilds. - **Speakers:** [Halil İbrahim Kalkan](https://www.wearedevelopers.com/@halil-ibrahim-kalkan) - **Event:** World Congress 2026 Europe - **Published:** July 10, 2026 - **Duration:** 30:15 - **URL:** https://www.wearedevelopers.com/videos/100218-dynamic-entities-in-net-building-low-code-systems-on-top-of-entity-framework-core ## Summary Business users frequently request rapid schema adaptivity—such as creating new fields, entities, and workflows—without requiring developer intervention or downtime. To achieve this, many engineering teams fall into the trap of using the Entity-Attribute-Value (EAV) pattern, only to discover that it shifts excessive complexity to the runtime and ruins querying and indexing performance. Building a truly performant low-code solution requires an architectural balance, which is why the ABP Framework team built their dynamic entity module entirely on top of Entity Framework Core (EF Core) using a hybrid data strategy. Building a robust dynamic system hinges on rethinking how EF Core maps directly to the database. By utilizing a hybrid approach, standard application fields (tenant IDs, creation dates) and query-heavy dynamic fields are mapped to physical database table columns, allowing proper index utilization. Conversely, unstructured or flexible properties are aggregated into a single native JSON column. This flexible mapping extensively relies on lesser-known EF Core features: Shared Type Entities easily map a single C# generic class to multiple dynamically generated runtime tables, while Indexer Properties handle real-time database columns mapped to application-side dictionary elements. Pushing EF Core to construct schemas on the fly reveals immense runtime extensibility. Developers can invoke `IModelCacheKeyFactory` to invalidate the application's statically built data model, triggering an onboard schema rebuild without needing a server restart. Additionally, Materialization Interceptors dynamically inject metadata—like specific entity names—into objects as they are queried out of the database. Although invoking internal EF Core APIs to alter table structures at runtime introduces manageable maintenance risk, the final product yields a remarkable low-code ecosystem where dynamic entities and traditionally compiled C# domain models flawlessly coexist, join, and interact within the same database environment. **Keywords:** ef core, abp framework, dynamic entity modeling, low-code architecture, eav pattern limitations, shared type entities, indexer properties, json column mapping, imodelcachekeyfactory, runtime schema evolution, ef core interceptors, database materialization, hybrid data modeling, dynamic schema generation, .net database optimization ## Chapters 1. **The demand for dynamic behavior in business data models** (00:11) — Recurring business requirements drive the need for runtime schema changes and rapid low-code adaptations. 1. **Defining low-code systems and determining their ideal use cases** (04:21) — Data-driven architectures excel when building rapidly evolving internal tools using straightforward crud mechanics. 1. **Designing the architecture and storing dynamic data models** (07:30) — Storing application behavior and entity definitions within JSON structures supports flexible runtime schema generation. 1. **Comparing entity-attribute-value and mixed database architectural approaches** (11:47) — Combining physical tables with JSON fields overcomes the severe performance limitations found in standard EAV models. 1. **Mapping multiple runtime tables using shared type entities** (15:43) — Shared type entities map varying physical database properties securely using a single generic class definition. 1. **Initializing dynamic object metadata using materialization interceptors** (18:57) — Materialization interceptors enable developers to pre-load missing configurations precisely upon retrieving fresh entity instances. 1. **Generating functional runtime database columns using indexer properties** (20:08) — Indexer properties inject unexpected data column names directly into query definitions via internal entity collections. 1. **Handling flexible data constraints natively with json columns** (21:40) — Native JSON column mapping prevents string serialization limitations when persisting highly flexible object schemas. 1. **Invalidating cached models to process ongoing runtime schema changes** (22:30) — Cache invalidation interfaces forcefully reconstruct application caching pipelines when detecting runtime schema configuration increments. 1. **Executing unscripted database migrations at runtime through internal apis** (24:01) — Overriding design-time migration logic exposes internal hooks to enact real-time database schema transformations. 1. **Integrating dynamic low-code structures with standard application models** (25:53) — Hybrid architectures bridge hardcoded C# class definitions with customizable and volatile user-defined runtime configurations. 1. **Maintaining backward compatibility during legacy record modifications** (28:43) — Declaring robust default values effectively shields materialization pipelines from un-migrated missing properties. ## Related Moments - [Modern application stacks and real-time data requirements](https://www.wearedevelopers.com/videos/806-leveraging-real-time-data-in-fsis) (from "Leveraging Real time data in FSIs") - [Structuring applications using domain-driven design concepts](https://www.wearedevelopers.com/videos/892-typed-security-preventing-vulnerabilities-by-design) (from "Typed Security: Preventing Vulnerabilities By Design") - [Why frontend developers should master fundamental data modeling](https://www.wearedevelopers.com/videos/297-nosql-data-modeling-for-front-end-developers) (from "NoSQL Data Modeling for Front-end Developers") - [Balancing artificial intelligence speed with low-code reliability](https://www.wearedevelopers.com/videos/1651-reimagining-app-development-with-low-code-and-ai) (from "Reimagining app development with Low-code and AI") - [Building long-term Angular architectures with domain-driven design](https://www.wearedevelopers.com/videos/5-sustainable-angular-architectures-with-nx-and-strategic-design) (from "Sustainable Angular Architectures with Nx and Strategic Design") - [Delivering dynamic API footprints and schemas at runtime](https://www.wearedevelopers.com/videos/100291-building-apis-for-agents-vs-systems-is-mcp-the-answer) (from "Building APIs for Agents vs Systems. Is MCP the answer?") ## Related Articles - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [Graph and AI Trends 2026: Why Is AI Running but Not Yet Delivering?](https://www.wearedevelopers.com/magazine/680-graph-and-ai-trends-2026-why-is-ai-running-but-not-yet-delivering) - [Exploring AI: Opportunities and Risks for Developers](https://www.wearedevelopers.com/magazine/522-exploring-ai-opportunities-and-risks-for-developers) - [Navigating the AI Shift](https://www.wearedevelopers.com/magazine/629-navigating-the-ai-shift) ## Related Jobs - [Principal Software Engineer, Enterprise AI Platform](https://www.wearedevelopers.com/jobs/ext/1467292-principal-software-engineer-enterprise-ai-platform) at **GitHub** - [Senior Data Engineer](https://www.wearedevelopers.com/jobs/ext/1589390-senior-data-engineer) at **Douglas GmbH** - [Lead Software Engineer - Data Engineering](https://www.wearedevelopers.com/jobs/ext/2000968-lead-software-engineer-data-engineering) at **Dynatrace** - [Principal Software Engineer, Database Infrastructure](https://www.wearedevelopers.com/jobs/ext/1465908-principal-software-engineer-database-infrastructure) at **GitHub** - [Principal Software Engineer, Identity](https://www.wearedevelopers.com/jobs/ext/1469181-principal-software-engineer-identity) at **GitHub** - [Backend Entwickler C#/.NET iv.)](https://www.wearedevelopers.com/jobs/ext/1262419-backend-entwickler-c-net-iv) at **Bosch-Gruppe Österreich**