CSV-Datei in Klassen importieren

Unter Access war es einfach: Dort haben wir eine CSV-Datei oder auch Excel-Tabellen einfach als verknüpfte Tabelle eingebunden und konnten dann direkt auf die Daten zugreifen. Beispielsweise, um diese dann per Anfügeabfrage in die Zieltabelle zu schreiben. Unter Entity Framework ist das so nicht möglich. Natürlich könnte man das Öffnen der Datei von Hand realisieren und die einzelnen Elemente einlesen. Aber es gibt einen anderen, effizienteren Weg, den wir mit einem NuGet-Paket namens CsvHelper beschreiten können. Diese Klasse erlaubt es, die Zeilen einer CSV-Datei automatisch in die Elemente auf Basis einer entsprechenden Klasse einzulesen. Oder Sie können damit auch die Zeilen durchlaufen und die Inhalte auf Basis des Indexes oder der Spaltenüberschrift einlesen und weiterverarbeiten.

Weiterlesen

EDM mit vorhandener SQL Server-Datenbank

In einigen der vorherigen Ausgaben haben wir uns mit dem Erstellen eines Entity Data Models auf Basis auf Access-Datenbanken konzentriert. Dabei haben wir aus dem Datenmodell der Access-Datenbank ein Entity Data Model erstellt, mit dem dann die SQL Server-Datenbank angelegt werden konnte. Nun wollen wir den vermutlich nicht so seltenen Fall betrachten, dass bereits eine SQL Server-Datenbank existiert. Dabei zeigen wir, wir Sie das Entity Data Model erstellen und damit auf die in der SQL Server-Datenbank enthaltenen Daten zugreifen können – und wie Sie die Namen von Entitäten und Eigenschaften angleichen, wenn die in den Tabellen und Feldern verwendeten Namen nicht passen.

Weiterlesen

Code First Mapping per Fluent API

Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardmäßig greifen. So heißen Entitäten wie der Singular der zugrunde liegenden Tabellennamen oder der Primär- und Fremdschlüssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten – gegebenenfalls kombiniert mit dem Entitätsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Präfix “tbl” mitbringen, wollen Sie dieses nicht in den Entitätsnamen wiederfinden und gegebenenfalls möchten (oder müssen) Sie auch noch Feldnamen ändern und diese anschließend mappen. Eine Möglichkeit dazu finden Sie in den Methoden der Fluent Api, die wir in diesem Artikel beschreiben.

Weiterlesen

Code First Mapping per DataAnnotation

Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardmäßig greifen. So heißen Entitäten wie der Singular der zugrunde liegenden Tabellennamen oder der Primär- und Fremdschlüssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten – gegebenenfalls kombiniert mit dem Entitätsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Präfix “tbl” mitbringen, wollen Sie dieses nicht in den Entitätsnamen wiederfinden und gegebenenfalls möchten (oder müssen) Sie auch noch Feldnamen ändern und diese anschließend mappen. Eine Möglichkeit dazu bieten die DataAnnotations, die wir in diesem Artikel beschreiben.

Weiterlesen

Entity Framework: Aktionsabfragen mit LINQ

Wer lange mit Access gearbeitet hat, schreibt Aktionsabfragen entweder mit der Entwurfsansicht für Abfragen oder erstellt diese per SQL-Quellcode. Vielleicht kombinieren Sie auch beide Varianten und passen per Entwurf erstellte Abfragen in der SQL-Ansicht an. Unter VBA verwendet man außerdem oft DAO, um Datensatzgruppen zu öffnen und Daten anzulegen, zu bearbeiten oder zu löschen. In einem Entity Data Model können Sie auch SQL-Abfragen absetzen, sowohl für Auswahl- als auch für Aktionsabfragen. Allerdings gibt es auch LINQ – die Abfragesprache für das Entity Framework. Dieser Artikel zeigt, wie Sie gängige SQL-Aktionsabfragen oder DAO-Aktionen in LINQ übersetzen.

Weiterlesen

Das RichTextBox-Steuerelement

Die beiden Steuer-elemente TextBox und TextBlock reichen für die Darstellung einfacher Texte aus. Wenn die Texte jedoch formatiert oder sogar strukturiert dargestellt werden wollen, brauchen wir eine Alternative. Im Artikel “FlowDocument-Elemente mit XAML” haben Sie bereits das FlowDocument-Element kennen gelernt, das viele Möglichkeiten bietet einschließlich Absätze, Inline-Formatierungen, Listen, Tabellen und Abbildungen. Nun wollen wir uns ansehen, wie uns das RichTextBox-Steuerelement dabei unterstützen kann, diese Art von Dokumenten zu bearbeiten.

Weiterlesen

Direkter SQL-Zugriff und SQL-Injection

Wenn Sie von Access kommen und es gewohnt sind, Abfragen mit der Entwurfsansicht über die Benutzeroberfläche anzulegen, kann schon das Zusammenstellen von SQL-Abfragen nervig sein. Aber diese kann man unter Access immerhin noch aus der SQL-Ansicht einer Abfrage ermitteln. Was aber, wenn man nun Abfragen in LINQ formulieren soll, wo es noch nicht einmal eine grafische Entwurfsansicht gibt Nun: Es gibt auch unter Entity Framework die Möglichkeit, SQL-Befehle abzusetzen. Das ist auch deshalb interessant, weil Sie so auch gespeicherte Prozeduren ausführen können. Wie das gelingt, zeigt der vorliegende Artikel.

Weiterlesen

EDM für bestehende Datenbank mit Code First

Wenn Sie ein Entity Data Model mit der Vorlage “Code First aus Datenbank” auf Basis einer bestehenden Datenbank erstellen, haben Sie vielleicht Pech und die Namen der Tabellen der Datenbank und der enthaltenen Felder lauten nicht so, wie Sie die Entitätsklassen, die DbSet-Elemente und die Eigenschaften der Klassen nennen möchten. Dann haben Sie verschiedene Möglichkeiten: Zum Beispiel können Sie die Bezeichnungen in der Datenbank anpassen. Das geht aber oft nicht, weil vielleicht noch andere Frontends auf die gleiche Datenbank zugreifen. Dann haben Sie noch die Möglichkeit, die Bezeichnungen von Datenbank und Entity Data Model so zu mappen, dass beide Seiten zufrieden sind. Wie letzteres gelingt, zeigen wir im vorliegenden Artikel am Beispiel der Südsturm-Datenbank.

Weiterlesen

EDM: Blättern in Datensätzen

Wenn Sie und Ihre Kunden die Arbeit mit der Detailansicht von Access-Formularen gewohnt sind, möchten Sie vielleicht auch in einem WPF-Fenster mit der Detailansicht der Daten einer Klasse blättern können. Dieser Artikel zeigt, wie Sie einem Detailformular die Daten einer Tabelle über die entsprechende DbSet-Auflistung zuweisen und wie Sie mit entsprechenden Schaltflächen in den Datensätzen blättern können.

Weiterlesen

Validieren mit VB und EDM

Im Artikel EDM: Validieren von Entitäten mit IDataErrorInfo haben wir bereits erläutert, wie Sie einer auf dem Entity Framework basierenden Anwendung eine Validierung hinzufügen können. Im vorliegenden Artikel schauen wir uns an, wie Sie die Validierung nicht unter C#, sondern unter VB realisieren und welche Änderungen in den Methoden zum Migrieren einer Access-Anwendung nach WPF/EDM notwendig sind, um die Validierung vorzubereiten oder gegebenenfalls auch direkt umzusetzen.

Weiterlesen