StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Databases
  4. Orm
  5. Dapper vs NHibernate

Dapper vs NHibernate

OverviewComparisonAlternatives

Overview

NHibernate
NHibernate
Stacks116
Followers92
Votes5
GitHub Stars2.2K
Forks930
Dapper
Dapper
Stacks574
Followers85
Votes6

Dapper vs NHibernate: What are the differences?

Introduction

Dapper and NHibernate are both popular Object-Relational Mapping (ORM) frameworks used in .NET development. While both frameworks serve the purpose of connecting and interacting with databases, there are several key differences between the two.

  1. Performance: Dapper is known for its high-performance capabilities compared to NHibernate. Dapper uses a lightweight and efficient mapper, resulting in faster execution times for database queries and operations. On the other hand, NHibernate employs a more complex mapping process, which can lead to comparatively slower performance.

  2. Flexibility: Dapper provides more flexibility in terms of query execution. It allows developers to write raw SQL queries and retrieve results directly, making it suitable for scenarios where complex or customized queries are required. In contrast, NHibernate emphasizes a more declarative and object-oriented approach, making it easier to work with domain objects but limiting the flexibility of direct SQL manipulation.

  3. Database Support: Dapper supports a wide range of databases, including SQL Server, Oracle, MySQL, SQLite, and more. It is compatible with virtually any database that has a .NET data provider. NHibernate, on the other hand, is designed to work with various databases but requires specific dialects and configurations for each supported database. This can make NHibernate slightly more challenging to set up and configure for different database platforms.

  4. Learning Curve: Dapper is relatively simple to learn and use, particularly for developers who are already familiar with SQL. Its API is straightforward, and the documentation provides comprehensive examples. NHibernate, on the other hand, has a steeper learning curve due to its extensive features and configurations. It requires a deeper understanding of object-relational mapping concepts and may take more time and effort to become comfortable with.

  5. Community and Support: Both Dapper and NHibernate have active and supportive communities. However, NHibernate, being a more established and mature framework, has a larger user base and broader community support. It has been around for a longer time and has a more extensive set of resources, tutorials, and community-driven solutions available.

  6. Integration and Ecosystem: Dapper is designed to be lightweight and integrates easily with existing codebases. It does not require extensive configuration or modification of existing infrastructure. NHibernate, with its rich feature set, offers more extensive integration options and tools for managing complex ORM scenarios. It provides a comprehensive ecosystem of plugins, extensions, and integrations with other frameworks, making it suitable for enterprise-scale applications with demanding ORM requirements.

In summary, Dapper and NHibernate have distinct differences in terms of performance, flexibility, database support, learning curve, community support, and integration options. The choice between the two depends on the specific requirements of the project, the developer's familiarity with ORM frameworks, and the need for performance optimization and flexibility.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

NHibernate
NHibernate
Dapper
Dapper

It is a mature, open source object-relational mapper for the .NET framework. It's actively developed, fully featured and used in thousands of successful projects.

It is an object-relational mapping product for the Microsoft.NET platform: it provides a framework for mapping an object-oriented domain model to a traditional relational database.

-
Parameterized queries; List Support; Literal replacements; Multi Mapping
Statistics
GitHub Stars
2.2K
GitHub Stars
-
GitHub Forks
930
GitHub Forks
-
Stacks
116
Stacks
574
Followers
92
Followers
85
Votes
5
Votes
6
Pros & Cons
Pros
  • 5
    DDD friendly
Pros
  • 6
    Fastest ORM
Integrations
.NET
.NET
Visual Studio
Visual Studio
C#
C#
MySQL
MySQL
SQLite
SQLite
Microsoft SQL Server
Microsoft SQL Server
.NET
.NET
Oracle
Oracle
PostgreSQL
PostgreSQL
Firebird
Firebird

What are some alternatives to NHibernate, Dapper?

Sequelize

Sequelize

Sequelize is a promise-based ORM for Node.js and io.js. It supports the dialects PostgreSQL, MySQL, MariaDB, SQLite and MSSQL and features solid transaction support, relations, read replication and more.

Prisma

Prisma

Prisma is an open-source database toolkit. It replaces traditional ORMs and makes database access easy with an auto-generated query builder for TypeScript & Node.js.

Hibernate

Hibernate

Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper.

Doctrine 2

Doctrine 2

Doctrine 2 sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL.

MikroORM

MikroORM

TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.

Entity Framework

Entity Framework

It is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.

peewee

peewee

A small, expressive orm, written in python (2.6+, 3.2+), with built-in support for sqlite, mysql and postgresql and special extensions like hstore.

MyBatis

MyBatis

It is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. It eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. It can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

Entity Framework Core

Entity Framework Core

It is a lightweight, extensible, open source and cross-platform version of the popular Entity Framework data access technology. It can serve as an object-relational mapper (O/RM), enabling .NET developers to work with a database using .NET objects, and eliminating the need for most of the data-access code they usually need to write.

SQLAlchemy

SQLAlchemy

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase