Just for you to know that the NHibernate community hasn’t been sleeping, here’s a list of some of the cool new features that are on the queue for the next NHibernate versions.
Some are still waiting for review from the NHibernate team and because of that, don’t yet have a target version.
Common base type for ISession and IStatelessSession (NH-1440)
A long-sought request, this will allow abstracting the two kinds of sessions. It is scheduled for NH 5.
Consolidate common functionality of ICriteria, IQuery, ISQLQuery, etc (NH-2140)
Create a base interface for all query APIs. Unscheduled yet.
Support for LockMode in linq provider (NH-2285)
Allows setting the lock mode for a LINQ query. Unscheduled yet.
IQueryable support for persistent collections (NH-2319)
Allows querying collections without loading them. For NH 5.
Method for specifying IType of LINQ parameter (NH-2401)
Allows one to override the type of a parameter. For NH 4.1.
Allow injectable/inheritance of Linq query provider (NH-2611)
Allows replacing the default LINQ provider for a custom one, which may support additional features. It is scheduled for NH 4.1.
NH cannot load mapping assembly from GAC (NH-2831)
Now we will be able to load assemblies containing mappings from the GAC. For NH 4.0.2.
Optimistic Locking in mapping by code (NH-2823)
Setting the lock mode in a LINQ query, bringing it to pair with the other query APIs. For NH 4.1.
Linq: NHibernateContext for WCF Data Service (NH-2920)
For exposing NHibernate in a WCF Data Service. For NH 5.
DistinctRootEntityResultTransformer not available in NHibernate Linq (NH-3299)
Another functionality from other APIs that is missing in LINQ. Unscheduled yet.
Add missing standard Id Generators in Mapping By Code (NH-3404)
All the id generators will now be available in mapping by code. In NH 4.1.
Ability to select the root entity in a criteria projection (NH-3435)
In a Criteria query, it will be possible to select the root entity, from which the query originated. For NH 4.1.
Allow Session.Query to load entities as read-only (NH-3470)
Another functionality that was missing in LINQ API. Will be available in NH 4.1.
Allow query model visitor to be provided through the session factory (NH-3499)
Another extensibility hook. For NH 4.1.
Allow Creating of Child Stateless Session (NH-3606)
Right now, it is only possible to create full stateless sessions from existing ones, this will fix that. For NH 4.1.
Make default value of FlushMode configurable (NH-3619)
Sometimes it is useful to have a specific flush mode specified other than the default for all new sessions created. For NH 4.1.
Strongly Typed Delete (NH-3659)
Delete from a LINQ expression. For NH 5 only.
Support Bulk Inserts (NH-3675)
Allow bulk insertions using each provider’s specific mechanism. For NH 5.
Query by Example in Linq (NH-3714)
Using entities as examples for LINQ queries. Will be available in NH 5.
Handle Information Messages from Server (NH-3724)
Add the ability to handle information messages from the database server (the InfoMessage event). Will be ready in NH 5.
Delete in Criteria and QueryOver (NH-3735)
Delete from an existing Criteria or QueryOver query. Only in NH 5.
Pass Table Variable as a Input parameter to Stored Procedure (NH-3736)
Allows passing table-valued parameters to NHibernate SQL queries in SQL Server. Not scheduled yet.