Go to file
2026-01-15 15:03:48 +01:00
Iot refactor: remove commented navigation properties and clean up namespaces 2026-01-15 15:03:48 +01:00
.envrc adden envrc 2026-01-15 14:48:27 +01:00
.gitignore added proj 2026-01-15 14:41:25 +01:00
Actor.csv added proj 2026-01-15 14:41:25 +01:00
ActorType.csv added proj 2026-01-15 14:41:25 +01:00
flake.lock added proj 2026-01-15 14:41:25 +01:00
flake.nix refactor: remove commented navigation properties and clean up namespaces 2026-01-15 15:03:48 +01:00
Iot.sln added proj 2026-01-15 14:41:25 +01:00
Iot.sln.DotSettings added proj 2026-01-15 14:41:25 +01:00
Measurement.csv added proj 2026-01-15 14:41:25 +01:00
MeasurementType.csv added proj 2026-01-15 14:41:25 +01:00
README.md added proj 2026-01-15 14:41:25 +01:00

"# 10-Iot

Lehrziele

  • LINQ to Object
  • Navigation Properties
  • Wiederholung: Projektion, Join, GroupBy

Aufgabenstellung

In einem IoT Projekt werden Messdaten gesammelt und in einer Datenbank abgespeichert. Von dieser Datenbank sind CSV Exportdateien vorhanden:

Datenstruktur

ActorType.csv

Kategorisierung der Aktoren.

  • Id: Eindeutige ID
  • Name: Bezeichnung der Aktorkategorie

Actor.csv

Liste aller im System vorhandenen Aktoren.

  • Id: Eindeutige ID
  • Name: Bezeichnung des Aktors
  • FirstSeen: Zeitpunkt der ersten Registrierung
  • ActorTypeId: Beziehung zu den Aktoren-Kategorien

MeasurementType.csv

Liste aller Messwert-Kategorien.

  • Id: Eindeutige ID
  • Name: Bezeichnung (z.B. "Temperature")
  • Comment: Kommentar/Beschreibung

Measurement.csv

Liste aller (historischen) Messwerte.

  • Id: Eindeutige ID
  • Time: Zeitpunkt der Messung
  • ActorId: Zuordnung zu einem Aktor
  • MeasurementTypeId: Zuordnung zu einer Messwert-Kategorie
  • Value: Der gemessene Wert

Implementierung

Entitäten

Das Projekt enthält zwei Arten von Entitäten:

  1. CsvEntities: Einfache DTOs für den CSV-Import (ohne Beziehungen)
  2. Entities: Domain-Entitäten mit Navigation Properties

Navigation Properties

Die Entities implementieren folgende Beziehungen:

  • ActorTypeActors (1:n)
  • ActorActorType (n:1)
  • ActorMeasurements (1:n)
  • MeasurementTypeMeasurements (1:n)
  • MeasurementActor (n:1)
  • MeasurementMeasurementType (n:1)

LINQ Queries

Das Programm demonstriert verschiedene LINQ-Operationen:

Report 1: Liste aller Aktoren mit Anzahl der Messungen

  • Verwendete LINQ-Operationen: Select, Projection, OrderBy

Report 2: Liste aller Messwert-Typen mit Anzahl

  • Verwendete LINQ-Operationen: Select, Projection, OrderBy

Report 3: Aktoren nach Messwert-Typen gruppiert mit Statistiken

  • Verwendete LINQ-Operationen: GroupBy, Select, Projection, Min, Max, Count, OrderBy
  • Zeigt für jede Kombination von Aktor und Messwert-Typ:
    • Anzahl der Messungen
    • Minimaler Wert
    • Maximaler Wert

Ausführung

dotnet run --project Iot/Iot.csproj

"