© best_vector/Shutterstock.com
Windows Developer
Neuerungen im Entity Framework 5.0

Schneller, stabiler, besser

Auf uns rollt eine große Welle an Neuerungen zu. Nicht nur, dass das neue .NET Framework 4.5 an unsere Tür klopft, es gibt auch gleich noch ein neues Betriebssystem und eine neue Entwicklungsumgebung oben drauf. In diesem Artikel greifen wir uns das Entity Framework heraus, das in der Version 5 mit dem neuen .NET Framework 4.5 ausgerollt wurde, und betrachten einmal die Neuerungen dieses O/R Mappers.

Timm Bremus


Nahezu nichts wird im .NET-Umfeld so rasant weiterentwickelt wie das Entity Framework. Der Hype um den O/R Mapper scheint vorerst kein Ende zu finden, und so rasen die Versionsnummern weiter in schwindelerregendem Tempo in die Höhe. Mit dem im August dieses Jahres veröffentlichten .NET Framework 4.5 wurde auch das Entity Framework 5 ausgerollt. Das neue Release dieser Bibliothek bringt einige Neuerungen mit sich, die in diesem Artikel erläutert und anhand von Beispielen verdeutlicht werden sollen. Der Vollständigkeit halber werden auch Themen behandelt, die bereits ab der Version 4.1 zur Verfügung stehen.

Bevor es ans Eingemachte geht, hier noch ein Blick in die Zukunft: Microsoft hat angekündigt, das Entity Framework ab der Version 6 als Open-Source-Projekt unter der Apache-Lizenz v2 zu veröffentlichen, und folgt damit dem Vorbild des ASP.NET MVC Frameworks, das ebenfalls auf CodePlex als offener Quellcode veröffentlicht wurde. Microsoft verspricht, das Framework auch künftig weiter zu entwickeln und bietet weiterhin vollständige Unterstützung für den O/R Mapper.

DbContext vs. ObjectContext

Neu hinzugekommen seit der Version 4.1 des Entity Frameworks ist der DbContext. Im Prinzip kann man diesen als die direkte Konkurrenz des ObjectContext und als dessen Ablösung betrachten. Der neue Kontext kommt schlanker daher als sein großer Bruder und wird mit dem T4 Code-Template „ADO.NET DbContext Generator“ erzeugt, das kostenlos über Visual Studio heruntergeladen werden kann. Ausdrücklich empfohlen wird an dieser Stelle, nur neue Datenmodelle auf dem DbContext basieren zu lassen. Bestehende Modelle sind auch nach wie vor noch mit dem ObjectContext lauffähig und keinesfalls als „veraltet“ anzusehen. Der DbContext arbeitet mit simplen ­POCO-Klassen, die nicht so eng an den Kontext gebunden sind, wie es beim großen Bruder der Fall ist. Einzig auf Compiled Queries muss man noch verzichten, was unter Umständen ein kleiner Perfor­mance­nachteil sein kann. Weitere Informationen hierzu finden sich im Abschnitt „Mapping“.

Ein Vorteil in Sachen Performance ist jedoch die Möglichkeit des bedingten Nachladens. Es können nun nicht länger nur alle verknüpften Entitäten eines Objekts nachgeladen werden, sondern es besteht die Möglichkeit, explizit zu definieren, welche Objekte man gezielt nachladen möchte:

this.Context.Entry(user).Collection(f => f.Orders).Query().Where(x => x.Date == DateTime.Now).Load();

Erwähnenswert ist auch die neue Methode Find(), die das Suchen nach Objekte...

Windows Developer
Neuerungen im Entity Framework 5.0

Schneller, stabiler, besser

Auf uns rollt eine große Welle an Neuerungen zu. Nicht nur, dass das neue .NET Framework 4.5 an unsere Tür klopft, es gibt auch gleich noch ein neues Betriebssystem und eine neue Entwicklungsumgebung oben drauf. In diesem Artikel greifen wir uns das Entity Framework heraus, das in der Version 5 mit dem neuen .NET Framework 4.5 ausgerollt wurde, und betrachten einmal die Neuerungen dieses O/R Mappers.

Timm Bremus


Nahezu nichts wird im .NET-Umfeld so rasant weiterentwickelt wie das Entity Framework. Der Hype um den O/R Mapper scheint vorerst kein Ende zu finden, und so rasen die Versionsnummern weiter in schwindelerregendem Tempo in die Höhe. Mit dem im August dieses Jahres veröffentlichten .NET Framework 4.5 wurde auch das Entity Framework 5 ausgerollt. Das neue Release dieser Bibliothek bringt einige Neuerungen mit sich, die in diesem Artikel erläutert und anhand von Beispielen verdeutlicht werden sollen. Der Vollständigkeit halber werden auch Themen behandelt, die bereits ab der Version 4.1 zur Verfügung stehen.

Bevor es ans Eingemachte geht, hier noch ein Blick in die Zukunft: Microsoft hat angekündigt, das Entity Framework ab der Version 6 als Open-Source-Projekt unter der Apache-Lizenz v2 zu veröffentlichen, und folgt damit dem Vorbild des ASP.NET MVC Frameworks, das ebenfalls auf CodePlex als offener Quellcode veröffentlicht wurde. Microsoft verspricht, das Framework auch künftig weiter zu entwickeln und bietet weiterhin vollständige Unterstützung für den O/R Mapper.

DbContext vs. ObjectContext

Neu hinzugekommen seit der Version 4.1 des Entity Frameworks ist der DbContext. Im Prinzip kann man diesen als die direkte Konkurrenz des ObjectContext und als dessen Ablösung betrachten. Der neue Kontext kommt schlanker daher als sein großer Bruder und wird mit dem T4 Code-Template „ADO.NET DbContext Generator“ erzeugt, das kostenlos über Visual Studio heruntergeladen werden kann. Ausdrücklich empfohlen wird an dieser Stelle, nur neue Datenmodelle auf dem DbContext basieren zu lassen. Bestehende Modelle sind auch nach wie vor noch mit dem ObjectContext lauffähig und keinesfalls als „veraltet“ anzusehen. Der DbContext arbeitet mit simplen ­POCO-Klassen, die nicht so eng an den Kontext gebunden sind, wie es beim großen Bruder der Fall ist. Einzig auf Compiled Queries muss man noch verzichten, was unter Umständen ein kleiner Perfor­mance­nachteil sein kann. Weitere Informationen hierzu finden sich im Abschnitt „Mapping“.

Ein Vorteil in Sachen Performance ist jedoch die Möglichkeit des bedingten Nachladens. Es können nun nicht länger nur alle verknüpften Entitäten eines Objekts nachgeladen werden, sondern es besteht die Möglichkeit, explizit zu definieren, welche Objekte man gezielt nachladen möchte:

this.Context.Entry(user).Collection(f => f.Orders).Query().Where(x => x.Date == DateTime.Now).Load();

Erwähnenswert ist auch die neue Methode Find(), die das Suchen nach Objekte...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang