How-To - LINQ-to-NHibernate

by Gregor Biswanger 2. September 2009 04:09
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.
kick it on dotnet-kicks.de

Kommentare

Kommentar schreiben


(Zeigt dein Gravatar icon)  

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading



Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING 

Gregor Biswanger ist Microsoft MVP für Client App Dev und Arbeitet als Solution Architect und Silverlight Experte der Firma impuls Informationsmanagement GmbH aus Nürnberg. Seine Schwerpunkte liegen im Bereich der .NET-Architektur, Silverlight und agilen Prozessen.

Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group).


dotnet-cologne 2010 Speaker

dotnetpro powerday 2010Speaker

Basta! 2009 Speaker

shareconnect 2009 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)