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. Entity Framework Core vs NHibernate

Entity Framework Core vs NHibernate

OverviewComparisonAlternatives

Overview

NHibernate
NHibernate
Stacks116
Followers92
Votes5
GitHub Stars2.2K
Forks930
Entity Framework Core
Entity Framework Core
Stacks1.1K
Followers225
Votes16
GitHub Stars9.0K
Forks2.3K

Entity Framework Core vs NHibernate: What are the differences?

Introduction

Entity Framework Core and NHibernate are both object-relational mappers (ORMs) that provide a bridge between a relational database and an application's object-oriented model. While they serve the same purpose, there are key differences between the two.

  1. Database Support: Entity Framework Core supports a wide range of databases, including SQL Server, PostgreSQL, MySQL, SQLite, and more. On the other hand, NHibernate has broader database support and can work with almost any database that has an ADO.NET provider.

  2. Maturity: NHibernate has been around since 2004 and has a mature codebase with a stable feature set. Entity Framework Core, being a newer framework, has a more modern architecture and benefits from lessons learned from previous versions of Entity Framework. However, it may lack some of the advanced features and performance optimizations that NHibernate offers.

  3. Mapping Approaches: Entity Framework Core uses a code-first or database-first approach for mapping database entities to objects. It provides a fluent API for configuring mappings and generating database schemas. NHibernate, on the other hand, supports multiple mapping approaches, including XML-based mapping files, attribute-based mapping, and convention-based mapping.

  4. Querying: Entity Framework Core has a LINQ provider that allows developers to write strongly-typed queries using LINQ syntax. It also supports raw SQL queries and provides a query translation layer to convert LINQ queries into SQL statements. NHibernate also supports LINQ queries but has a more mature and feature-rich querying API, including support for HQL (Hibernate Query Language).

  5. Performance: NHibernate is known for its performance optimizations, such as batch insert/update/delete operations, lazy loading, and caching. Entity Framework Core has made significant performance improvements over previous versions of Entity Framework but may still lag behind NHibernate in certain scenarios.

  6. Community and Ecosystem: NHibernate has a vibrant and active community with extensive documentation, tutorials, and third-party extensions. Entity Framework Core, being a newer framework, is gaining popularity and has a growing ecosystem, but may not have the same level of community support and resources as NHibernate.

In summary, Entity Framework Core and NHibernate are both powerful ORM frameworks with their own strengths and weaknesses. While Entity Framework Core offers a more modern and streamlined development experience, NHibernate provides broader database support, advanced features, and performance optimizations. Ultimately, the choice between the two depends on the specific requirements and preferences of the project.

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
Entity Framework Core
Entity Framework Core

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 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.

-
Lightweight ;Extensible , Cross Platform; ORM; .NET Core; .NET Framework
Statistics
GitHub Stars
2.2K
GitHub Stars
9.0K
GitHub Forks
930
GitHub Forks
2.3K
Stacks
116
Stacks
1.1K
Followers
92
Followers
225
Votes
5
Votes
16
Pros & Cons
Pros
  • 5
    DDD friendly
Pros
  • 7
    Fits very well with Microsoft technologies
  • 4
    Fast
  • 2
    Linq
  • 1
    OpenSource
  • 1
    Easy to use
Cons
  • 1
    Dbcontext
Integrations
.NET
.NET
Visual Studio
Visual Studio
C#
C#
Firebird
Firebird
PostgreSQL
PostgreSQL
Oracle
Oracle
Azure Cosmos DB
Azure Cosmos DB
MariaDB
MariaDB
Microsoft Access
Microsoft Access
SQLite
SQLite
MySQL
MySQL
.NET
.NET
.NET Core
.NET Core

What are some alternatives to NHibernate, Entity Framework Core?

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.

SQLAlchemy

SQLAlchemy

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

Dapper

Dapper

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.

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