Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

EF EntityFramework zu WPF hinzufügen und verwenden

02.08.2018 (👁7938)

Entity Framework zu WPF

Wie fügt man EF Entity Framework zu einer WPF Anwendung zu?

Unter dem WPF Projekt->References ->Manage NugetPackages

EntityFramework

Entity Framework is Microsoft's recommended data access technology for new applications.

In der WPF Anwendung.

Dort wo man den EntityFramework verwenden möchte muss man im Using Bereich eintragen

using System.Data.Entity;       //Entity Framework

 

 

Bestehende Datenbank zur WPF hinzufügen

DBFirst

Auf das WPF Projekt im Solutions-Explorer gehen

Dann direkt oder in einem Unterordner auf New Item

Und unter dem Dialog: Add New Item auf den Bereich Data->ADO.NET Entity Data Model

A project item for creating an Ado.Net Entity Data Model

EF Designer from database

Auswahl auf EF Designer from database

Creates a model in the EF Designer based on an existing database. You can choose the database connection, settings for the model, and database objects to include in the model. The classes your application will interact with are generated from the model.

Dann eine bestehende Datenbank auswählen. In diesem Beispiel habe ich eine LocalDB oder Service-based Database direkt in das Projekt gelegt.

Diese lokale Projekt Datenbank wird in der Regel auch vorgeschlagen.

Im unteren Feld unter : Save connection settings in App.Config.cs eine passende allgemein verständliche Context-Namen einsetzen wie dbContext oder Datenbank-Context

Dann die Tabellen und Views auswählen.

Server Views verhalten sich in der Datenbank wie Tabellen ohne Schreibrechte sondern Leserechten.

Dadurch wird die Datenbank in der Application

Die Tabellenstruktur findet man unter

Data->Models.edmx->Models.tt  (dann die Tabellen)

Man kann nicht direkt in die Datei schreiben, da diese über den Designer erstellt wird.

Die eigentlichen Tabellen befinden sich als c# Klassen Datenmodelle (M) im Untervezeichnis

Zugriff auf die Datenbank in der Anwendung

public static void db_Update_Add_ListRecord(string sURL, string sTitle)

{

    //--------< Add_Record() >--------

    var scan = new tbl_Scans();

    scan.dtCreated = DateTime.Now;

    scan.Title = "First Record";

 

    var db = new dbWebScanEntities();

    db.tbl_Scans.Add(scan);

    db.SaveChanges();

 

    // Display all Blogs from the database 

    var query = from r in db.tbl_Scans

                where r.URLRef==sURL 

                select r;

    //query = query.Take(1);

 

    foreach (var item in query)

    {

        Console.WriteLine(item.Title);

    }

    //--------</ Add_Record() >--------

}

 

 

 

 

Wichtige Info zum Verständnis der Datenbank:

Wenn man anschliessend das WPF kompiliert und zur Laufzeit testet, dann wird von der Entwurfs-Datenbank eine Kopie gezogen und in den Ausgabeordner /bin/.. kopiert.

Alle Datenbewegungen werden dann auf die lokale Runtime-Datenbank bezogen und nicht auf die Vorlage der Entwurfsdatenbank.

Die Entwurfsdatenbank hat bei lokalen Datenbank nur die Funktion der Struktur-Gebung

Änderungen durch die Datenbank

Wenn jetzt änderungen an der Datenbank vorgenommen werden, dann werden diese nicht automatisch in die Anwendung übertragen

Das Daten-Modell aktualisieren

Hierzu geht man unter dem Context-Designer auf ->Update Model from Database

Das System erkennt dann automatisch was zu tun ist.

Man wählt die geänderten Daten aus und übernimmt diese.