11.07.2015 Aufrufe

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kapitel 3: LINQentsprechende Klassen modellieren. Dabei kann zur Unterscheidung verschiedenerUnterklassen eine Diskriminator-Spalte mit Unterklassen-individuellen Ausprägungenfestgelegt werden.LINQ to SQL unterstützt zwar die Verwendung von Datenbanktransaktionen, jedochnicht komfortabler als dies bereits in .NET 2.0 der Fall war. Um beispielsweise dasgezeigte Speichern einer Fahrt innerhalb einer Transaktion stattfinden zu lassen, was inAnbetracht der datenbankseitigen Primärschlüsselvergabe ratsam erscheint, muss imFahrtenbuchDataContext über dessen Connection manuell eine Transaktiongestartet und zugewiesen werden:DbTransaction tr =ctx.Connection.BeginTransaction(IsolationLevel.ReadCommitted);ctx.Transaction = tr;try {ctx.SubmitChanges(); tr.Commit();} catch {tr.Rollback();}Eine integrierte Methode der Transaktionsverwaltung innerhalb der Datenkontext-Klasse, beispielsweise durch Setzen eines IsolationLevel für alle schreibendenÜbertragungsvorgänge, wäre förderlich gewesen, um diesbezügliche Fehlerauszuschließen. Der FahrtenbuchDataContext bietet indes genügend Ansatzpunkte,um eine derartige Funktionalität nachzurüsten.Das Laden von gemappten Objekten findet im Normalfall zu dem Zeitpunkt statt, zudem sie tatsächlich von der Anwendung benötigt werden [Ki09]. Dieses Verhalten wirdals Lazy Fetching bezeichnet. Für Situationen, in denen dieses Verhalten nichterwünscht ist, lassen sich dem DataContext sogenannte DataLoadOptionsmitteilen. Das Beispiel zeigt die Anweisung, beim Laden der Automobil-Tabelle diePerson-Tabelle ebenfalls zu übertragen:DataLoadOptions dlo = new DataLoadOptions();dlo.LoadWith(auto => auto.Person);ctx.LoadOptions = dlo;3.4 LINQ to Entities und ADO.NET 3.0Mit Veröffentlichung des Servicepack 1 für das .NET-Framework 3.5 und demServicepack 1 für das Visual Studio 2008 hat Microsoft im August dieses Jahres dieDatenzugriffskomponenten ADO.NET 3.0 und den LINQ to Entities-Providernachgeliefert. Den zentralen Unterschied zu LINQ to SQL stellt die Verwendung desADO.NET Entity Frameworks dar, das die Verwendung eines sogenannten Entity-17

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!