For an ORM for .NET apps, the strongest matches are servicestack/servicestack.ormlite (ServiceStack OrmLite is a lightweight), aspnet/entityframework (Entity Framework is a) and dotnet/efcore (Entity Framework Core is a full-featured ORM for). hibernate/hibernate-orm and doctrine/orm round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
High-performance object-relational mapping frameworks for C# and .NET that simplify database interaction and data persistence.
Fast, Simple, Typed ORM for .NET
ServiceStack OrmLite is a lightweight .NET ORM that maps plain POCOs to database tables without imposing persistence concerns on your domain objects, which directly follows the Data Mapper pattern for clean architecture projects; it supports LINQ, fluent configuration, multiple providers, and basic migration, though it lacks built-in lazy loading and identity map.
EntityFramework is a .NET object-relational mapper that translates application objects into database tables and rows. It functions as a query engine that converts high-level expressions into optimized SQL commands for data retrieval. The project provides a mechanism for monitoring modifications to loaded objects to synchronize application state with the database. It also includes a system for synchronizing database structures with data models using versioned migration scripts. The framework supports multi-backend database integration through a plugin system, allowing a single application to
Entity Framework is a .NET ORM with LINQ, unit of work, identity maps, migrations, and multiple provider support, but its change-tracking approach is not a strict Data Mapper pattern—domain objects often carry persistence concerns, which falls short of the clean separation required for clean architecture or DDD.
Entity Framework Core is an object-relational mapper that enables developers to interact with database systems using strongly-typed code. It serves as a comprehensive data access framework, providing a unified interface for mapping application objects to relational and non-relational database schemas while managing the lifecycle of data operations through a central context. The project distinguishes itself through a provider-based architecture that decouples core data access logic from specific database engines, allowing for consistent interaction across diverse storage systems. It features a
Entity Framework Core is a full-featured ORM for .NET, but its DbContext centralizes tracking and often ties persistence concerns to domain objects (through navigation properties and lazy-loading proxies), which diverges from the strict Data Mapper pattern that keeps domain objects completely persistence‑free for clean architecture or DDD projects.
Hibernate ORM is a Java object-relational mapper and a full implementation of the Jakarta Persistence API. It serves as a SQL database abstraction layer that translates Java object models into relational database schemas to manage data persistence and lifecycles. The framework distinguishes itself with a multi-tenant data isolation framework for separating customer data within a single database instance. It also features a database schema generator that automatically produces and updates relational structures based on entity mappings. The system covers broad capability areas including transa
Hibernate is a Java ORM that implements the Data Mapper pattern, but this search specifically requires a .NET solution for clean architecture or DDD projects.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Doctrine ORM is a PHP object-relational mapper that follows the Data Mapper pattern, but it targets PHP, not .NET, so it does not meet the platform requirement for a .NET ORM.
linq2db is a type-safe object-relational mapper that translates LINQ expressions into optimized SQL queries for multiple database providers. It functions as a database mapper that links classes to tables and includes a SQL query builder and a command-line schema tool for generating data classes from existing databases. The project provides high-performance bulk data processing for inserting and loading large volumes of records via batch or binary copy methods. It also supports advanced SQL operations, including window functions, common table expressions for recursive hierarchical querying, an
linq2db is a lightweight LINQ-to-SQL query builder and database mapper, but it lacks the strict Data Mapper constructs—such as an explicit Unit of Work, Identity Map, and lazy loading—that define a full Data Mapper ORM for clean architecture or DDD projects.