100 likes | 227 Views
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt. Kapitel 9 ADO.NET. ADO.NET (1) Klassen für Zugriffe auf Datenquellen wie SQL Server, OLEDB- oder ODBC-Schnittstelle, XML, etc. s.a.: http://msdn.microsoft.com/en-us/library/e80y5yhx(v=vs.110). aspx
E N D
Windows PresentationFoundationWS 2013/14Prof. Dr. Herrad Schmidt Kapitel 9 ADO.NET
ADO.NET (1)Klassen für Zugriffe auf Datenquellen wie SQL Server, OLEDB- oder ODBC-Schnittstelle, XML, etc. s.a.: http://msdn.microsoft.com/en-us/library/e80y5yhx(v=vs.110).aspx ADO.NET trennt den Datenzugriff von der Verarbeitung der Daten. Zur Abfrage von Daten werden eine Verbindung zur Datenbank hergestellt und die Daten in lokalen Datenstrukturen vorgehalten. Mit LINQ (Language-Integrated Query) wird eine sprachintegrierte Abfrage ermöglicht. Die Daten können in ein DataSetgeladen werden. Dieser Datentyp basiert auf einem relationalen Programmiermodell. Ein DataSet stellt eine Repräsentation von Tabellen mit ihren Beziehungen und Einschränkungen dar. Abfragen erfolgen mit Hilfe von LINQ toDataSet.
ADO.NET (2) Vom ADO.NET Entity Framework kann das relationale Schema der Datenbank in ein konzeptionelles Schema (.NET-Objektstruktur) abgebildet werden object-relational mapping (ORM). Die Datenabfrage und –manipulation für das konzeptionelle Modell erfolgt mit Hilfe von LINQ toEntities. .NET Framework 4 enthält einen EDM (Entity Data Model) Generator, der die Verbindung zur Datenquelle herstellt und eine von ObjectContext abgeleitete Klasse generiert, die den Entity Container im conceptual model repräsentiert.
LINQ (Language-Integrated Query):sprachintegrierte Abfrage und Aktualisierung von Daten: http://msdn.microsoft.com/en-us/library/bb397926.aspx
Eine Abfrage besteht immer aus 3 Aktionen http://msdn.microsoft.com/en-us/library/bb397906.aspx • Abrufen der DatenquelleAuflistung von Objekten, SQL-Server-Datenbanken, etc. • Erstellen der AbfrageAbfrageausdruck: welche Daten in welcher FormAbfragevariable speichert die Abfrage • Ausführen der AbfrageDie Abfrage wird ausgeführt, wenn entwederdie Abfragevariable in einer foreach-Anweisung durchlaufen wirdoder die Ergebnisse zwischengespeichert werden (ToList, ToArray)
// The Three Parts of a LINQ Query: // 1. Data source. int[] numbers = newint[7] { 0, 1, 2, 3, 4, 5, 6 }; // 2. Query creation. // numQueryis an IEnumerable<int> varnumQuery = fromnum in numbers where (num % 2) == 0 selectnum; // 3. Query execution. foreach (intnum in numQuery) { Console.Write("{0} ", num); } } Quelle: http://msdn.microsoft.com/en-us/library/bb397906.aspx
Implementierung in VS für den Zugriff auf Datenbanken: DataSet (1) • Ansichtsfenster Datenquellen Neue Datenquelle hinzufügen… • Datenquellentyp auswählen Datenbank • Datenbankmodell auswählen DataSet • Datenverbindung auswählen Neue VerbindungServername: saba.fb5.uni-siegen.deSQL-Server-Authentifizierung: Benutzername: schmidt Kennwort: hs Nach der Kennworteingabe kann dieVerbindung getestet werden(Testverbindung). Datenbankname: … OK
Implementierung in VS für den Zugriff auf Datenbanken: DataSet (2) • Auswählen:„vertrauliche Daten in die Verbindungszeichenfolge einschließen“ • ConnectionString speichern • Tabellen bzw. Felder auswählen … Automatische Generierung von Views: Datenquellen anzeigen Per „draganddrop“ auf das Fenster in der Entwurfssicht können Views (in einem Grid) automatisch generiert werden.
Implementierung in VS für den Zugriff auf Datenbanken: Entity Framework (1) • Zum Projekt hinzufügen: ADO.NET Entity Data Model • „Aus Datenbank generieren“ Datenverbindung auswählen … • auswählen: „sensible Daten in die Verbindungszeichenfolge einfügen“ • Datenbankobjekte auswählen undAnklicken: Generierte Objektnamen in den Singular oder Plural setzen Fremdschlüsselspalten in das Modell einbeziehen
Solution 9_EntityFramework • A_DataSetGenerierteViews • B_DataSetMasterDetail • C_EntityFramework • D_Datenpflege