NHibernate - Where ISession.Query<T>() is located

StuffHappens picture StuffHappens · Jan 12, 2011 · Viewed 7.6k times · Source


When I try to compile the following code

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using NHibernate;

namespace NewNHTest
{
    class A
    { }

    class Program
    {
        static void Main(string[] args)
        {
            ISession session;
            var q = session.Query<A>();
        }
    }
}

I get the following error:

'NHibernate.ISession' does not contain a definition for 'Query' and no extension method 'Query' accepting a first argument of type 'NHibernate.ISession' could be found (are you missing a using directive or an assembly reference?)

NHibernate.dll version is 3.0.0.4000.
The .Net version of project is 3.5.

What am I doing wrong?
Thank you for your help!

Answer

Stephan Schinkel picture Stephan Schinkel · Jan 12, 2011
ISession.Query

is new to NHibernate 3 and is an extension method. Try

using NHibernate.Linq

and it should be resolved fine.