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: LINQSchlüsselwörter sehr ähnlich erscheint. Um bei einem Abfrageausdruck eine Filterunganzuwenden, genügt es einen where-Abschnitt anzufügen:IQueryable qAutos = from auto in tAutoswhere (auto.Typ.StartsWith("BMW")) select auto;Hervorzuheben ist die Verwendung der String-Methode StartsWith direkt auf demgemappten Attribut stringTyp, die einem wie alle weiteren String-Memberfunktionen nativ zur Verfügung stehen. Tiefer in die Tabellenstrukturvordringende Abfragen, die bei SQL die Verwendung von geschachtelten Abfragenoder JOIN-Verbunde erfordern, lassen sich auf ähnliche Weise vornehmen:IQueryable qAutos = from auto in tAutos where(auto.Person.Vorname.Equals("Georg")) select auto;Die missverständliche Bezeichnung Person steht dabei für das durch dieFremdschlüsselbeziehung Halter verwiesene Person-Objekt und wurde vomCodegenerator so gewählt. Im grafischen Designer lässt sie sich jedoch ohne Mühenbeispielsweise in HalterPerson ändern, wobei die Übernahme der Änderung in allerelevanten Codestellen automatisch erfolgt.Das Einfügen von Objekten sei an folgendem Auszug demonstriert:Person georg = (from person in tPersonen whereperson.Vorname.Equals("Georg") select person).First();Automobil georgsAuto = (from auto in tAutos where(auto.Person == georg) select auto).First();Fahrt neueFahrt = new Fahrt { Automobil = georgsAuto, Person =georg, geschaeftlich = false, Zeit = DateTime.Now,Zweck = "Winterreifen" };tFahrten.InsertOnSubmit(neueFahrt);ctx.SubmitChanges();Das neue Fahrt-Objekt wird instanziiert und seine Attribute gesetzt. Das Fahrzeug alsAutomobil und der Fahrer als Person werden hier im Datenbestand gesucht, wobeiIQueryable.First() zum Einsatz kommt, um das erste Element der Kollektion zuerhalten. Die neueFahrt wird zur zeitlich versetzten Speicherung an die TabelletFahrten per InsertOnSubmit() übergeben. Die Übertragung an dasDatenbanksystem erfolgt erst durch den Aufruf von SubmitChanges() desDatenkontextes. Löschen erfolgt über die Tabellenfunktion DeleteOnSubmit().Die Modellierung von Vererbungsstrukturen kann bei LINQ to SQL ebenfalls über diegrafische Design-Ansicht erfolgen. Ausgehend von einer bestehenden Tabellen-Strukturin der Datenbank, die bereits eine Vererbungshierarchie abbildet, lassen sich16

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!