NHibernate.FlowQuery v2.2.0 Released

I’m happy to announce version 2.2.0 of NHibernate.FlowQuery (FlowQuery) which mostly improves on the in-code documentation and fixes a few important bugs in the NuGet package. The new version also contains a bunch of code changes, although none of them should affect you too much (hopefully not at all), unless you’re extending the library (see the release notes below). A few new features, however small they might be, are also available.

Version 2.2.0 of FlowQuery can be downloaded here. FlowQuery is, as the last two releases, available on NuGet.

Install using NuGet:

PM> Install-Package NHibernate.FlowQuery


Release Notes:

Bug Fixes

  • NuGet package should include license file
  • NuGet package should include release notes file


  • Property names for orders set using OrderBy/OrderByDescending(..) should not be case sensitive
  • Add XML DOC comments to provide developers with better in-code documentation (intellisense, etc.)
  • Modify detached queries to not be able to project multiple properties (as sub-queries can’t do that anyway)
  • Modify FetchBuilder to take an instance of IFlowQuery instead of FlowQueryBase
  • Modify JoinBuilder to take an instance of IFlowQuery instead of FlowQueryBase
  • Modify LockBuilder to take an instance of IFlowQuery instead of FlowQueryBase
  • Introduce an interface for PartialSelection which should be returned by “query.PartialSelect”
  • NuGet package should include the new help file (generated using SandCastle)

New Features

  • Add possibility to Suppress errors when adding orders set using OrderBy/OrderByDescending(..)
  • Add possibility to specify custom criteria builder instead of using static helper (CriteriaHelper)
  • Add possibility to create truly detached queries (e.g. without ISession or IStatelessSession references)


  • Introduce the use of StyleCop to enforce basic coding style rules.
  • Introduce the use of SandCastle to generate documentation help files
  • Rename class DelayedFlowQueryImplementor to DelayedFlowQuery
  • Rename class DetachedFlowQueryImplementor to DetachedFlowQuery
  • Rename class DetachedImmutableFlowQueryImplementor to DetachedImmutableFlowQuery
  • Rename class FlowQueryImplementor to FlowQueryBase
  • Rename class ImmediateFlowQueryImplementor to ImmediateFlowQuery
  • Rename class MorphableFlowQueryImplementor to MorphableFlowQueryBase
  • Rename class QueryableFlowQueryImplementor to QueryableFlowQueryBase
  • Rename namespace NHibernate.FlowQuery.Core.Implementors to NHibernate.FlowQuery.Core.Implementations
  • Move ExampleWrapper to NHibernate.FlowQuery.Core.Implementations namespace
  • Move JoinBuilder to NHibernate.FlowQuery.Core.Implementations namespace
  • Move LockBuilder to NHiberate.FlowQuery.Core.Implementations namespace
  • Move FetchBuilder to NHiberate.FlowQuery.Core.Implementations namespace
  • Move PartialSelection to NHiberate.FlowQuery.Core.Implementations namespace
  • Move PartialSelectionBuiler to NHiberate.FlowQuery.Core.Implementations namespace
  • Move SelectionBuilder to NHiberate.FlowQuery.Core.Implementations namespace
  • Move SelectSetup to NHiberate.FlowQuery.Core.Implementations namespace
  • Move SelectSetupPart to NHiberate.FlowQuery.Core.Implementations namespace
  • Move IJoinBuilder to NHibernate.FlowQuery.Core namespace
  • Move ILockBuilder to NHibernate.FlowQuery.Core namespace
  • Move IFetchBuilder to NHibernate.FlowQuery.Core namespace
  • Move ISelectSetup to NHibernate.FlowQuery.Core namespace
  • Move ISelectSetupPart to NHibernate.FlowQuery.Core namespace
  • Move Join to NHibernate.FlowQuery.Core.Structures namespace
  • Move Lock to NHibernate.FlowQuery.Core.Structures namespace
  • Move Fetch to NHibernate.FlowQuery.Core.Structures namespace
  • Move OrderByStatement to NHibernate.FlowQuery.Core.Structures namespace
  • Move Pair to NHibernate.FlowQuery.Core.Structures namespace
  • Clean out all “MetaDataFactory” references (as they are not used, nor planned to be used in the near-future)

The biggest change or this release is the in-code documentation which should provide you all with, just a tiny bit, better intellisense when working with FlowQuery. It also made it possible to generate a proper help file (.chm) using Sandcastle Help File Builder. The help file can be downloaded at SourceForge and is also part of the NuGet package (it should be found in the package folder).

I’ve also altered the documentation page to maintain the documentation of old versions by adding sub-pages for each version being released. Why don’t you take a look at the documentation page and let me know what you think?

Enjoy! (:


NHibernate.FlowQuery v2.0 Released

The last couple weeks I’ve been working fervently with a new major version of NHibernate.FlowQuery (FlowQuery) with a better (read as: more flexible and maintainable) syntax which supports MultiCriteria (Futures), interchangeability (morphing) and re-usability.

Version 2.0 of FlowQuery can be downloaded here. The new version is built against NHibernate 3.3.3.

I’m very happy with what I have to present, but I don’t think my regular kind of short release notice would do the job this time. Therefore I have also put some time aside to document the most of the project properly (from a usage point of view).

The documentation is divided into the following topics:

I’ve also added a contact page where you can report bugs/issues or simply request a feature. This will have to do until I find a nice place to set up a proper issue tracking system.

I hope you will enjoy the new version as much as I have enjoyed developing and documenting it! (:

/Niklas Källander