If you are curious about Linq to NHibernate and want to quickly check it out, here is an easy way to do it.

Check out a copy of the CodeCampServer source (svn).  CodeCampServer is easy to work with because it has good tests on an already-working NHibernate implementation.

Check out a copy of NH Contrib (svn), open the NHibernate.Linq solution in Visual Studio and build. You may have to remove the compiler flag that indicates .NET 3.5 sp1 is available.

Open the CodeCampServer.sln and remove the NHibernate.dll reference from the DataAccess and IntegrationTests projects.  Add a reference to NHibernate.dll from the NHibernate.Linq bin directory.  Build and run tests.  I had to play with the DatabaseTesterBase.recreateDatabase() method because I think are are still some bugs in Export():

public static void recreateDatabase()
{
    var exporter = new SchemaExport(new HybridSessionBuilder().GetConfiguration());
    exporter.Drop(false, true);
    exporter.Create(false, true);
}

Now add a reference to NHibernate.Linq.dll in the DataAccess project. You can start writing queries and check your work with the integration tests that already exist. Here are a few simple queries for ConferenceRepository:

public Conference[] GetAllConferences()
{
    ISession session = getSession();
    var query = from conference in session.Linq<Conference>() select conference;
    return query.ToList().ToArray();
}

public Conference GetConferenceByKey(string key)
{
    ISession session = getSession();
    var query = from conference in session.Linq<Conference>()
                where conference.Key == key
                select conference;
    return query.Distinct().Single();
}

public Conference GetFirstConferenceAfterDate(DateTime date)
{
    ISession session = getSession();
    var query = from conference in session.Linq<Conference>()
                where conference.StartDate >= date
                orderby conference.StartDate
                select conference;
    return query.First();
}

public Conference GetMostRecentConference(DateTime date)
{
    ISession session = getSession();
    var query = from conference in session.Linq<Conference>()
            where conference.EndDate <= date
            select conference;
    query.OrderByDescending(conference => conference.EndDate);
    return query.First();
}