Die beiden O/R-Mapper von Microsoft hatten gemeinsam etwas
sehr attraktives an sich und das war die Unterstützung von LINQ. NHibernate
selbst verfügt über eigene Abfragesprachen. Dennoch zeigen sich diese Sprachen
etwas komplexer, überdies kann mittels LINQ eine SQL ähnliche Abfrage und das
auch noch Typsicher, durchgeführt werden. Doch gibt es derzeit endlich die erste
fertige Version von LINQ-to-NHibernate. Somit wird NHibernate wieder ein großes
Stück mächtiger.
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.
Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
