Reputation: 28060
Ok, I think I have all my configurations right and now I am just trying to do a select query from the database selecting some data. Now I am using NHibernate 3.0 which I though by default support LINQ (or at least a good portion of link. Now every LINQ example I find has this code
session.Linq<User>()
but I for the life of me can't find how or where session is being set. Is this that proper why of doing in in 3.0 and if so how do I set sessions (what usings do I need, classes, methods, etc...)? If not, what is the proper way of using LINQ with NHibernate 3.0?
UPDATE:
Now I have the following code:
var configuration = new Configuration();
configuration.Configure();
configuration.AddAssembly(typeof(Tag).Assembly);
var sessionFactory = configuration.BuildSessionFactory();
var session = sessionFactory.GetCurrentSession();
but I get a compiler error saying that NHibernate.ISession does not have a definition for Linq. I have the follow usings:
using System.Collections.Generic;
using System.Web.Mvc;
using MyProject.Models;
using MyProject.ViewModels.Desktop;
using NHibernate.Cfg;
Am I missing something?
Upvotes: 7
Views: 6471
Reputation: 27439
You need to import the namespace:
using NHibernate.Linq;
Also, it's now:
session.Query<TEntity>();
instead of:
// Deprecated
session.Linq<TEntity>();
Upvotes: 8
Reputation: 42165
You get a session from the NHibernate SessionFactory.CreateSession()
method. Once you have one, you can then use either HQL queries, the NH query API or LINQ to access the data.
Upvotes: 2