2011-01-07 24 views
7

OK, myślę, że mam wszystkie moje konfiguracje w prawo, a teraz po prostu próbuję zrobić zapytanie kwerendy z bazy danych wybierając niektóre dane. Teraz używam NHibernate 3.0 które choć domyślnie wsparcia LINQ (lub przynajmniej spora część łącza. Teraz każdy przykład LINQ znajdę ma ten kodKorzystanie z LINQ z NHibernate

session.Linq<User>() 

ale dla życia mnie nie można znaleźć jak i gdzie sesja jest ustawiana Czy to jest właściwe, dlaczego robisz w wersji 3.0, a jeśli tak, to jak ustawić sesje (jakich potrzebuję potrzebuję, klas, metod, itd.)? Jeśli nie, to co jest właściwe sposób korzystania z NHibernate LINQ 3,0

UPDATE:

teraz mam następujący kod:

var configuration = new Configuration(); 
configuration.Configure(); 
configuration.AddAssembly(typeof(Tag).Assembly); 
var sessionFactory = configuration.BuildSessionFactory(); 
var session = sessionFactory.GetCurrentSession(); 

ale pojawia się błąd kompilatora, który mówi, że NHibernate.ISession nie ma definicji dla Linq. Mam następujące czynności:

using System.Collections.Generic; 
using System.Web.Mvc; 
using MyProject.Models; 
using MyProject.ViewModels.Desktop; 
using NHibernate.Cfg; 

Czy brakuje mi czegoś?

+1

wierzę, że to 'session.Query ()' w NHibernate 3 jako dostawcę LINQ do zestawu rdzenia –

+0

wiki NHibernate jest dobrym źródłem na początek - http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx –

Odpowiedz

8

trzeba importować nazw:

using NHibernate.Linq; 

Ponadto, jest to teraz:

session.Query<TEntity>(); 

zamiast:

// Deprecated 
session.Linq<TEntity>(); 
+0

Tak, wymyśliłem, że muszę użyć .Query zamiast .Linq dla NHibernate 3, Dzięki – ryanzec

2

Otrzymujesz sesję z metody NHibernate SessionFactory.CreateSession(). Gdy już go posiadasz, możesz użyć zapytań HQL, API zapytań NH lub LINQ w celu uzyskania dostępu do danych.

Powiązane problemy