Nearly all of the features listed here are described more fully in the document:
NHibernate - Relational Persistence for Idiomatic .NET
https://nhibernate.info/doc/nhibernate-reference/index.html
- Numerous databases supported
- SQL Server (2000, 2005, 2008, Express, CE)
- Oracle (9i, 10g, 11g)
- DB2, Firebird, Informix, MySQL, PostgreSQL, SQLite, Sybase
- Flexible mapping strategies
- Based on Hibernate (Java)
- Started as a port of Hibernate
- Includes nearly all features of current Hibernate
- Extends Hibernate by adding LINQ capabilities
- Continuous integration development environment
- Flexible query APIs
- Multiple session configuration models
- Logging support
- Support for audit integration
- Works with stored procedures, triggers
- Significant body of add ons (Open Source and Commercial)
- Multiple cache choices
- Outer-join fetching, when supported by database
- Batch SQL, when supported by database
- Flexible connection management
- Query language substitutions
- Internal naming strategy definition
- Support for dynamic model
- Multiple proxy implementation choices
- Lazy fetching for associations
- Dynamic insert and update generation
- Custom persistence mechanisms
- Multiple Id generators
- Support for Composite Keys
- Multiple property access strategies
- Flexible association mapping
- Component mapping
- Ability to map an association from multiple collection types
- Custom value types
- Supports bidirectional associations
- Inheritance mapping
- Metadata API
- Stateless session capability
- Direct DML capability
- DDL schema generation from mapping files