Der LINQ Provider dafür kann hier Heruntergeladen werden: http://sourceforge.net/projects/nhibernate/files/NHibernate/2.1.0.GA/NHibernate.Linq-1.0.0.GA-bin.zip/download
Beispiel
Der Provider selbst ist sehr schlank und besteht nur aus einer Library „NHibernate.Linq.dll“. Die Library wird dann der Datenschicht unter den Referenzen hinzugefügt. Anschließend muss in der Repository-Klasse die beiden Usings „System.Linq“ und „NHibernate.Linq“ deklariert werden.
Anschließend kann eine normale LINQ Anfrage begonnen werden. Dem session-Objekt steht jetzt eine neue Methode mit „LINQ“ zur Verfügung (Extended Method). Der LINQ-Methode muss man nun den Typen des Entitys mitgeben.
Abb.1.1. – LINQ bei NHibernate verwenden.
Fazit
Die LINQ Funktionalität war schon ein lang vermisstes Feature für NHibernate Liebhaber. Die erste Version zeigt sich sehr Stabil. Leider müssen mache Konvertierungen wie zum Beispiel „AsQueryable“ mit Umwegen durch andere Methoden wie „ToList“ durchgeführt werden. Das sollte normal direkt konvertierbar sein. Hoffentlich wird das bei den kommenden Versionen des Providers verbessert.