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

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 (Microsoft MVP für Client App Dev) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)