diff --git a/KanSan/Baustelle.cs b/KanSan/Baustelle.cs deleted file mode 100644 index 9858488..0000000 --- a/KanSan/Baustelle.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace KanSan -{ - public class Baustelle - { - public Guid BaustelleID { get; set; } - public Kunden Kunde { get; } = new Kunden(); - public string Ort { get; set; } - public string Strasse { get; set; } - } -} \ No newline at end of file diff --git a/KanSan/Klassen/Baustelle.cs b/KanSan/Klassen/Baustelle.cs new file mode 100644 index 0000000..f3ad977 --- /dev/null +++ b/KanSan/Klassen/Baustelle.cs @@ -0,0 +1,23 @@ +using System; + +namespace KanSan.Klassen +{ + public class Baustelle + { + public Guid ID { get; set; } + public Kunde Kunde { get; set; } + public string Ort { get; set; } + public string Strasse { get; set; } + public string Projektnummer { get; set; } + + public Baustelle(Kunde kunde) + { + Kunde = kunde; + } + + public Baustelle() + { + + } + } +} \ No newline at end of file diff --git a/KanSan/Klassen/Kunde.cs b/KanSan/Klassen/Kunde.cs new file mode 100644 index 0000000..f894059 --- /dev/null +++ b/KanSan/Klassen/Kunde.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; + +namespace KanSan.Klassen +{ + public class Kunde + { + public Guid ID { get; set; } + public string Vorname { get; set; } + public string Nachname { get; set; } + public string Strasse { get; set; } + public string PLZ { get; set; } + public string Ort { get; set; } + + public List Baustellen { get; } = new List(); + + public void NeueBaustelle(string ort, string strasse, string projektnummer) + { + Baustelle baustelle = new Baustelle(this) + { + Ort = ort, + ID = Guid.NewGuid(), + Projektnummer = projektnummer, + Strasse = Strasse + }; + Baustellen.Add(baustelle); + } + } +} \ No newline at end of file diff --git a/KanSan/Klassen/Leistungsverzeichnis.cs b/KanSan/Klassen/Leistungsverzeichnis.cs new file mode 100644 index 0000000..4e54bc5 --- /dev/null +++ b/KanSan/Klassen/Leistungsverzeichnis.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace KanSan.Klassen +{ + public class Leistungsverzeichnis + { + public Guid ID { get; set; } + public string Beschreibung { get; set; } + public List Positionen { get; set; } + public Leistungsverzeichnis(string beschreibung) + { + ID = Guid.NewGuid(); + Beschreibung = beschreibung; + } + + public void AddLeistungsverzeichnisPosition(string Positionnummer,string PositionsBeschreibung,string PositionEinheit, decimal PositionEinheitpreis) + { + if (Positionen == null) Positionen = new List(); + LeistungsverzeichnisPosition pos = new LeistungsverzeichnisPosition(); + pos.ID = Guid.NewGuid(); + pos.ref_leistungsverzeichnis = this; + pos.Position = Positionnummer; + pos.PositionBeschreibung = PositionsBeschreibung; + pos.PositionEinheit = PositionEinheit; + pos.PositionEinheitspreis = PositionEinheitpreis; + + Positionen.Add(pos); + } + } + + public class LeistungsverzeichnisPosition + { + public Guid ID { get; set; } + public Leistungsverzeichnis ref_leistungsverzeichnis { get; set; } + public string Position { get; set; } + public string PositionBeschreibung { get; set; } + public string PositionEinheit { get; set; } + public decimal PositionEinheitspreis { get; set; } + } +} \ No newline at end of file diff --git a/KanSan/LeistungsverzeichnisBaustelle.cs b/KanSan/Klassen/LeistungsverzeichnisBaustelle.cs similarity index 63% rename from KanSan/LeistungsverzeichnisBaustelle.cs rename to KanSan/Klassen/LeistungsverzeichnisBaustelle.cs index 1120068..060d8f8 100644 --- a/KanSan/LeistungsverzeichnisBaustelle.cs +++ b/KanSan/Klassen/LeistungsverzeichnisBaustelle.cs @@ -1,9 +1,9 @@ -namespace KanSan +namespace KanSan.Klassen { public class LeistungsverzeichnisBaustelle { public int LeistungsverzeichnisBaustelleID { get; set; } public Baustelle Baustelle { get; set; } - public Leistungsverzeichniss Leistungsverzeichniss { get; set; } + public Leistungsverzeichnis Leistungsverzeichniss { get; set; } } } \ No newline at end of file diff --git a/KanSan/Kunden.cs b/KanSan/Kunden.cs deleted file mode 100644 index 3b83b6a..0000000 --- a/KanSan/Kunden.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace KanSan -{ - public class Kunden - { - public Guid KundenID { get; set; } - public string Vorname { get; set; } - public string Nachname { get; set; } - public string Strasse { get; set; } - public string PLZ { get; set; } - public string Ort { get; set; } - - public List Baustellen { get; } = new List(); - } -} \ No newline at end of file diff --git a/KanSan/Leistungsverzeichniss.cs b/KanSan/Leistungsverzeichniss.cs deleted file mode 100644 index 9f5e1eb..0000000 --- a/KanSan/Leistungsverzeichniss.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace KanSan -{ - public class Leistungsverzeichniss - { - public Guid LeistungsverzeichnissID { get; set; } - public string Position { get; set; } - public string PositionBeschreibung { get; set; } - public string PositionEinheit { get; set; } - public decimal PositionEinheitspreis { get; set; } - } -} \ No newline at end of file diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs index 6fb5d98..6730be7 100644 --- a/KanSan/MainWindow.xaml.cs +++ b/KanSan/MainWindow.xaml.cs @@ -13,6 +13,8 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using KanSan.Klassen; +using Microsoft.EntityFrameworkCore; namespace KanSan { @@ -26,14 +28,85 @@ namespace KanSan InitializeComponent(); } + public static void InsertOrUpdateGraph(KanSanContext context, Kunde kunde) + { + var existingKunde = context.Kunden + .Include(b => b.Baustellen) + .FirstOrDefault(b => b.ID == kunde.ID); + + if (existingKunde == null) + context.Add(kunde); + else + { + context.Entry(existingKunde).CurrentValues.SetValues(kunde); + foreach(var baustelle in kunde.Baustellen) + { + var existingBaustelle = existingKunde.Baustellen + .FirstOrDefault(p => p.ID == baustelle.ID); + if(existingBaustelle == null) + { + existingKunde.Baustellen.Add(baustelle); + } + else + { + context.Entry(existingBaustelle).CurrentValues.SetValues(baustelle); + } + } + } + context.SaveChanges(); + } + private void Button_Click(object sender, RoutedEventArgs e) { - List baustellen; using (KanSanContext ksc = new KanSanContext()) { - baustellen = ksc.Baustellen.ToList(); + var kunden = ksc.Kunden.First(); + //kunden.NeueBaustelle("Oldenburg", "Ammerländer", "20-850-006"); + + InsertOrUpdateGraph(ksc, kunden); + } + + /*InitialKundenDatabase(); + InitialLeistungsverzeichnis(); + */ + } + private void InitialKundenDatabase() + { + Kunde kunde = new Kunde() + { + Vorname = "Fa.", + Nachname = "OOWV", + Ort = "Brake", + PLZ = "268741", + Strasse = "Donnerschweerstraße 74" + }; + + kunde.NeueBaustelle("Oldenburg", "Kaspersweg", "20-850-003"); + using (KanSanContext ksc = new KanSanContext()) + { + ksc.Kunden.Add(kunde); + ksc.SaveChanges(); + } + } + private void InitialLeistungsverzeichnis() + { + using (KanSanContext ksc = new KanSanContext()) + { + + Leistungsverzeichnis leistungsverzeichnis = new Leistungsverzeichnis("JunkerMevesGenerell"); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.01", "Kurzliner", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.02", "Mat KL", "m", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.03", "Stutzen Hut", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.04", "Stutzen andere", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.05", "VA-Manschette", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.06", "Öffnen", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.07", "Fräsen", "h", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.08", "Hindernisse", "Stk", 0); + leistungsverzeichnis.AddLeistungsverzeichnisPosition("0.09", "Anrauhen", "Stk", 0); + + ksc.Leistungsverzeichnisses.Add(leistungsverzeichnis); + ksc.SaveChanges(); } - Debugger.Break(); } } } diff --git a/KanSan/Migrations/20200213193512_InitialCommit.Designer.cs b/KanSan/Migrations/20200216122731_InitialCommit.Designer.cs similarity index 62% rename from KanSan/Migrations/20200213193512_InitialCommit.Designer.cs rename to KanSan/Migrations/20200216122731_InitialCommit.Designer.cs index 091e2ca..78a7aa1 100644 --- a/KanSan/Migrations/20200213193512_InitialCommit.Designer.cs +++ b/KanSan/Migrations/20200216122731_InitialCommit.Designer.cs @@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace KanSan.Migrations { [DbContext(typeof(KanSanContext))] - [Migration("20200213193512_InitialCommit")] + [Migration("20200216122731_InitialCommit")] partial class InitialCommit { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -21,31 +21,34 @@ namespace KanSan.Migrations .HasAnnotation("ProductVersion", "3.1.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); - modelBuilder.Entity("KanSan.Baustelle", b => + modelBuilder.Entity("KanSan.Klassen.Baustelle", b => { - b.Property("BaustelleID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); - b.Property("KundenID") + b.Property("KundeID") .HasColumnType("uuid"); b.Property("Ort") .HasColumnType("text"); + b.Property("Projektnummer") + .HasColumnType("text"); + b.Property("Strasse") .HasColumnType("text"); - b.HasKey("BaustelleID"); + b.HasKey("ID"); - b.HasIndex("KundenID"); + b.HasIndex("KundeID"); b.ToTable("Baustellen"); }); - modelBuilder.Entity("KanSan.Kunden", b => + modelBuilder.Entity("KanSan.Klassen.Kunde", b => { - b.Property("KundenID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); @@ -64,12 +67,26 @@ namespace KanSan.Migrations b.Property("Vorname") .HasColumnType("text"); - b.HasKey("KundenID"); + b.HasKey("ID"); b.ToTable("Kunden"); }); - modelBuilder.Entity("KanSan.LeistungsverzeichnisBaustelle", b => + modelBuilder.Entity("KanSan.Klassen.Leistungsverzeichnis", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Beschreibung") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Leistungsverzeichnisses"); + }); + + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisBaustelle", b => { b.Property("LeistungsverzeichnisBaustelleID") .ValueGeneratedOnAdd() @@ -91,9 +108,9 @@ namespace KanSan.Migrations b.ToTable("LeistungsverzeichnisBaustelle"); }); - modelBuilder.Entity("KanSan.Leistungsverzeichniss", b => + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisPosition", b => { - b.Property("LeistungsverzeichnissID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); @@ -109,28 +126,40 @@ namespace KanSan.Migrations b.Property("PositionEinheitspreis") .HasColumnType("numeric"); - b.HasKey("LeistungsverzeichnissID"); + b.Property("ref_leistungsverzeichnisID") + .HasColumnType("uuid"); - b.ToTable("Leistungsverzeichnisses"); + b.HasKey("ID"); + + b.HasIndex("ref_leistungsverzeichnisID"); + + b.ToTable("LeistungsverzeichnisPosition"); }); - modelBuilder.Entity("KanSan.Baustelle", b => + modelBuilder.Entity("KanSan.Klassen.Baustelle", b => { - b.HasOne("KanSan.Kunden", null) + b.HasOne("KanSan.Klassen.Kunde", null) .WithMany("Baustellen") - .HasForeignKey("KundenID"); + .HasForeignKey("KundeID"); }); - modelBuilder.Entity("KanSan.LeistungsverzeichnisBaustelle", b => + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisBaustelle", b => { - b.HasOne("KanSan.Baustelle", "Baustelle") + b.HasOne("KanSan.Klassen.Baustelle", "Baustelle") .WithMany() .HasForeignKey("BaustelleID"); - b.HasOne("KanSan.Leistungsverzeichniss", "Leistungsverzeichniss") + b.HasOne("KanSan.Klassen.Leistungsverzeichnis", "Leistungsverzeichniss") .WithMany() .HasForeignKey("LeistungsverzeichnissID"); }); + + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisPosition", b => + { + b.HasOne("KanSan.Klassen.Leistungsverzeichnis", "ref_leistungsverzeichnis") + .WithMany("Positionen") + .HasForeignKey("ref_leistungsverzeichnisID"); + }); #pragma warning restore 612, 618 } } diff --git a/KanSan/Migrations/20200213193512_InitialCommit.cs b/KanSan/Migrations/20200216122731_InitialCommit.cs similarity index 67% rename from KanSan/Migrations/20200213193512_InitialCommit.cs rename to KanSan/Migrations/20200216122731_InitialCommit.cs index 7b1a857..9836958 100644 --- a/KanSan/Migrations/20200213193512_InitialCommit.cs +++ b/KanSan/Migrations/20200216122731_InitialCommit.cs @@ -12,7 +12,7 @@ namespace KanSan.Migrations name: "Kunden", columns: table => new { - KundenID = table.Column(nullable: false), + ID = table.Column(nullable: false), Vorname = table.Column(nullable: true), Nachname = table.Column(nullable: true), Strasse = table.Column(nullable: true), @@ -21,14 +21,48 @@ namespace KanSan.Migrations }, constraints: table => { - table.PrimaryKey("PK_Kunden", x => x.KundenID); + table.PrimaryKey("PK_Kunden", x => x.ID); }); migrationBuilder.CreateTable( name: "Leistungsverzeichnisses", columns: table => new { - LeistungsverzeichnissID = table.Column(nullable: false), + ID = table.Column(nullable: false), + Beschreibung = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Leistungsverzeichnisses", x => x.ID); + }); + + migrationBuilder.CreateTable( + name: "Baustellen", + columns: table => new + { + ID = table.Column(nullable: false), + Ort = table.Column(nullable: true), + Strasse = table.Column(nullable: true), + Projektnummer = table.Column(nullable: true), + KundeID = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Baustellen", x => x.ID); + table.ForeignKey( + name: "FK_Baustellen_Kunden_KundeID", + column: x => x.KundeID, + principalTable: "Kunden", + principalColumn: "ID", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "LeistungsverzeichnisPosition", + columns: table => new + { + ID = table.Column(nullable: false), + ref_leistungsverzeichnisID = table.Column(nullable: true), Position = table.Column(nullable: true), PositionBeschreibung = table.Column(nullable: true), PositionEinheit = table.Column(nullable: true), @@ -36,26 +70,12 @@ namespace KanSan.Migrations }, constraints: table => { - table.PrimaryKey("PK_Leistungsverzeichnisses", x => x.LeistungsverzeichnissID); - }); - - migrationBuilder.CreateTable( - name: "Baustellen", - columns: table => new - { - BaustelleID = table.Column(nullable: false), - Ort = table.Column(nullable: true), - Strasse = table.Column(nullable: true), - KundenID = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Baustellen", x => x.BaustelleID); + table.PrimaryKey("PK_LeistungsverzeichnisPosition", x => x.ID); table.ForeignKey( - name: "FK_Baustellen_Kunden_KundenID", - column: x => x.KundenID, - principalTable: "Kunden", - principalColumn: "KundenID", + name: "FK_LeistungsverzeichnisPosition_Leistungsverzeichnisses_ref_le~", + column: x => x.ref_leistungsverzeichnisID, + principalTable: "Leistungsverzeichnisses", + principalColumn: "ID", onDelete: ReferentialAction.Restrict); }); @@ -75,20 +95,20 @@ namespace KanSan.Migrations name: "FK_LeistungsverzeichnisBaustelle_Baustellen_BaustelleID", column: x => x.BaustelleID, principalTable: "Baustellen", - principalColumn: "BaustelleID", + principalColumn: "ID", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_LeistungsverzeichnisBaustelle_Leistungsverzeichnisses_Leist~", column: x => x.LeistungsverzeichnissID, principalTable: "Leistungsverzeichnisses", - principalColumn: "LeistungsverzeichnissID", + principalColumn: "ID", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateIndex( - name: "IX_Baustellen_KundenID", + name: "IX_Baustellen_KundeID", table: "Baustellen", - column: "KundenID"); + column: "KundeID"); migrationBuilder.CreateIndex( name: "IX_LeistungsverzeichnisBaustelle_BaustelleID", @@ -99,6 +119,11 @@ namespace KanSan.Migrations name: "IX_LeistungsverzeichnisBaustelle_LeistungsverzeichnissID", table: "LeistungsverzeichnisBaustelle", column: "LeistungsverzeichnissID"); + + migrationBuilder.CreateIndex( + name: "IX_LeistungsverzeichnisPosition_ref_leistungsverzeichnisID", + table: "LeistungsverzeichnisPosition", + column: "ref_leistungsverzeichnisID"); } protected override void Down(MigrationBuilder migrationBuilder) @@ -106,6 +131,9 @@ namespace KanSan.Migrations migrationBuilder.DropTable( name: "LeistungsverzeichnisBaustelle"); + migrationBuilder.DropTable( + name: "LeistungsverzeichnisPosition"); + migrationBuilder.DropTable( name: "Baustellen"); diff --git a/KanSan/Migrations/KanSanContextModelSnapshot.cs b/KanSan/Migrations/KanSanContextModelSnapshot.cs index 8d36627..4e2a9be 100644 --- a/KanSan/Migrations/KanSanContextModelSnapshot.cs +++ b/KanSan/Migrations/KanSanContextModelSnapshot.cs @@ -19,31 +19,34 @@ namespace KanSan.Migrations .HasAnnotation("ProductVersion", "3.1.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); - modelBuilder.Entity("KanSan.Baustelle", b => + modelBuilder.Entity("KanSan.Klassen.Baustelle", b => { - b.Property("BaustelleID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); - b.Property("KundenID") + b.Property("KundeID") .HasColumnType("uuid"); b.Property("Ort") .HasColumnType("text"); + b.Property("Projektnummer") + .HasColumnType("text"); + b.Property("Strasse") .HasColumnType("text"); - b.HasKey("BaustelleID"); + b.HasKey("ID"); - b.HasIndex("KundenID"); + b.HasIndex("KundeID"); b.ToTable("Baustellen"); }); - modelBuilder.Entity("KanSan.Kunden", b => + modelBuilder.Entity("KanSan.Klassen.Kunde", b => { - b.Property("KundenID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); @@ -62,12 +65,26 @@ namespace KanSan.Migrations b.Property("Vorname") .HasColumnType("text"); - b.HasKey("KundenID"); + b.HasKey("ID"); b.ToTable("Kunden"); }); - modelBuilder.Entity("KanSan.LeistungsverzeichnisBaustelle", b => + modelBuilder.Entity("KanSan.Klassen.Leistungsverzeichnis", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Beschreibung") + .HasColumnType("text"); + + b.HasKey("ID"); + + b.ToTable("Leistungsverzeichnisses"); + }); + + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisBaustelle", b => { b.Property("LeistungsverzeichnisBaustelleID") .ValueGeneratedOnAdd() @@ -89,9 +106,9 @@ namespace KanSan.Migrations b.ToTable("LeistungsverzeichnisBaustelle"); }); - modelBuilder.Entity("KanSan.Leistungsverzeichniss", b => + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisPosition", b => { - b.Property("LeistungsverzeichnissID") + b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("uuid"); @@ -107,28 +124,40 @@ namespace KanSan.Migrations b.Property("PositionEinheitspreis") .HasColumnType("numeric"); - b.HasKey("LeistungsverzeichnissID"); + b.Property("ref_leistungsverzeichnisID") + .HasColumnType("uuid"); - b.ToTable("Leistungsverzeichnisses"); + b.HasKey("ID"); + + b.HasIndex("ref_leistungsverzeichnisID"); + + b.ToTable("LeistungsverzeichnisPosition"); }); - modelBuilder.Entity("KanSan.Baustelle", b => + modelBuilder.Entity("KanSan.Klassen.Baustelle", b => { - b.HasOne("KanSan.Kunden", null) + b.HasOne("KanSan.Klassen.Kunde", null) .WithMany("Baustellen") - .HasForeignKey("KundenID"); + .HasForeignKey("KundeID"); }); - modelBuilder.Entity("KanSan.LeistungsverzeichnisBaustelle", b => + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisBaustelle", b => { - b.HasOne("KanSan.Baustelle", "Baustelle") + b.HasOne("KanSan.Klassen.Baustelle", "Baustelle") .WithMany() .HasForeignKey("BaustelleID"); - b.HasOne("KanSan.Leistungsverzeichniss", "Leistungsverzeichniss") + b.HasOne("KanSan.Klassen.Leistungsverzeichnis", "Leistungsverzeichniss") .WithMany() .HasForeignKey("LeistungsverzeichnissID"); }); + + modelBuilder.Entity("KanSan.Klassen.LeistungsverzeichnisPosition", b => + { + b.HasOne("KanSan.Klassen.Leistungsverzeichnis", "ref_leistungsverzeichnis") + .WithMany("Positionen") + .HasForeignKey("ref_leistungsverzeichnisID"); + }); #pragma warning restore 612, 618 } } diff --git a/KanSan/Model.cs b/KanSan/Model.cs index 3ef64d1..0b11594 100644 --- a/KanSan/Model.cs +++ b/KanSan/Model.cs @@ -4,15 +4,17 @@ using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; +using KanSan.Klassen; namespace KanSan { public class KanSanContext : DbContext { - public DbSet Kunden { get; set; } - public DbSet Leistungsverzeichnisses { get; set; } + public DbSet Kunden { get; set; } + public DbSet Leistungsverzeichnisses { get; set; } public DbSet LeistungsverzeichnisBaustelle { get; set; } + public DbSet LeistungsverzeichnisPosition { get; set; } public DbSet Baustellen { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) @@ -31,8 +33,4 @@ namespace KanSan } */ } - class Model - { - - } }