In diesem Post schauen wir uns die Beispielapplikation zur Illustration des Entity Frameworks an.

Domäne

Wir nutzen für unsere Beispiele eine Applikation aus dem Bereich der Produktionssteuerung. Diese bezieht sich auf das Konzept des Lean Management und wie dieses anhand eines Spiels trainiert werden kann.

Die Idee dabei ist, dass es ein zu fertigenedes Produkt gibt, bei dem möglichst geringe Kosten und geringe Produktionszeiten entstehen sollen. 

Das Spiel hat verschiedene Spielrunden, Stationen und Produktteile.

Die Stationen können beliebig aufgereiht werden, je nachdem wie die Teilnehmer es für richtig halten. 

An jeder Station werden dann verschiedene Arbeitsschritte durchgeführt.

Am Ende einer Runde wird überprüft wie viele Produkte erstellt wurden, bzw. wieviel Zeit für die erstellten Produkte benötigt wurde.

Prinzipiell muss weder Lean noch die Domäne vollständig verstanden werden, um die dargestellten Themen des EF zu verstehen. Diese Einführung dient nur der Erstellung der Entitäten.

Diese hier beschriebenen Entitäten beschreiben den Ausgangspunkt, sind Änderungen an diesem Ausgangspunkt vorhanden, wird das in dem jeweiligen Post beschrieben.

Voraussetzungen

Zum arbeiten mit dieser Applikation für EF core erstellen wir die Applikation folgendermaßen:

dotnet console new 
mkdir Models
mkdir Data
mkdir DataAccess

Da der Download vom Github Repository einfacher ist, nutzen wir eine Sqlite Datenbank. Dazu müssen wir noch die folgenden Nuget Pakete installieren:

Struktur der Beispielapplikation

Entitäten

Wir haben folgende Entitäten in unserer Applikation:

  • Round – Spielrunde
  • Station – Station an der gefertigt wird
  • Product – Produkt, eine Sammlung aus PartDefinitions
  • AssemblyStep – Fertigungsschritt
  • PartDefinition – Produktteil
  • Part – Linking tabelle von Produkt und PartDefinition
  • StationAssemblyStep – Linkingtabelle von Station und AssemblyStep
public class Round
{
    public int Id { get; set; }
    public DateTime Start { get; set; }
    public DateTime? End { get; set; }
}
public class Station
{
    public int Id { get; set; }
    public string Position { get; set; }
    public Round Round { get; set; }
    public List<StationAssemblyStep> AssemblySteps { get; set; }
}
public class Product
{
    public int Id { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public Round Round { get; set; }
    public List<Part> Parts { get; set; }
}
public class AssemblyStep
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Cost { get; set; }
    public List<StationAssemblyStep> StationAssemblySteps { get; set; }
}
public class PartDefinition
{ public int Id { get; set; } public int Cost { get; set; } public string Name { get; set; } public List<Part> Parts { get; set; } }
public class Part
{
public int Id { get; set; } public Product Product { get; set; } public PartDefinition PartDefinition { get; set; }
}
public class StationAssemblyStep
{ public int Id { get; set; } public Station Station { get; set; } public AssemblyStep AssemblyStep { get; set; }
}
Entitäten im Models Ordner

Für weitere Themen mit Entity Framework Core schaue auf der Übersichtsseite oder meinem Udemy Online Kurs nach.


0 Comments

Leave a Reply