Browse Source

🚧 Datenmodels erweitert

develop
Tobi 7 years ago
parent
commit
093cc62e35
No known key found for this signature in database
GPG Key ID: 187C1244EA024329
  1. 85
      Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs
  2. 82
      Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs
  3. 83
      Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs
  4. 87
      Backend/EVABackend/EVABackend/Models/EVAContext.cs
  5. BIN
      Backend/EVABackend/EVABackend/eva.db

85
Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs generated

@ -1,85 +0,0 @@
// <auto-generated />
using EVABackend.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace EVABackend.Migrations
{
[DbContext(typeof(EVAContext))]
[Migration("20190515103649_TestCreate1")]
partial class TestCreate1
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.8-servicing-32085");
modelBuilder.Entity("EVABackend.Models.Kurs", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("Kuendigungsfrist");
b.Property<int>("Laufzeit");
b.Property<string>("Name")
.IsRequired();
b.Property<decimal>("Preis");
b.Property<int>("UnterrichtsTyp");
b.HasKey("Id");
b.ToTable("Kurse");
});
modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
{
b.Property<int>("SchuelerId");
b.Property<int>("KursId");
b.HasKey("SchuelerId", "KursId");
b.HasIndex("KursId");
b.ToTable("KursSchueler");
});
modelBuilder.Entity("EVABackend.Models.Schueler", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<string>("Name")
.IsRequired();
b.Property<string>("Vorname")
.IsRequired();
b.HasKey("Id");
b.ToTable("Schueler");
});
modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
{
b.HasOne("EVABackend.Models.Kurs", "Kurs")
.WithMany("KursSchueler")
.HasForeignKey("KursId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("EVABackend.Models.Schueler", "Schueler")
.WithMany("KursSchueler")
.HasForeignKey("SchuelerId")
.OnDelete(DeleteBehavior.Cascade);
});
#pragma warning restore 612, 618
}
}
}

82
Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs

@ -1,82 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace EVABackend.Migrations
{
public partial class TestCreate1 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Kurse",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(nullable: false),
Preis = table.Column<decimal>(nullable: false),
Laufzeit = table.Column<int>(nullable: false),
Kuendigungsfrist = table.Column<int>(nullable: false),
UnterrichtsTyp = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Kurse", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Schueler",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(nullable: false),
Vorname = table.Column<string>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Schueler", x => x.Id);
});
migrationBuilder.CreateTable(
name: "KursSchueler",
columns: table => new
{
SchuelerId = table.Column<int>(nullable: false),
KursId = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_KursSchueler", x => new { x.SchuelerId, x.KursId });
table.ForeignKey(
name: "FK_KursSchueler_Kurse_KursId",
column: x => x.KursId,
principalTable: "Kurse",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_KursSchueler_Schueler_SchuelerId",
column: x => x.SchuelerId,
principalTable: "Schueler",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_KursSchueler_KursId",
table: "KursSchueler",
column: "KursId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "KursSchueler");
migrationBuilder.DropTable(
name: "Kurse");
migrationBuilder.DropTable(
name: "Schueler");
}
}
}

83
Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs

@ -1,83 +0,0 @@
// <auto-generated />
using EVABackend.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace EVABackend.Migrations
{
[DbContext(typeof(EVAContext))]
partial class EVAContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.8-servicing-32085");
modelBuilder.Entity("EVABackend.Models.Kurs", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("Kuendigungsfrist");
b.Property<int>("Laufzeit");
b.Property<string>("Name")
.IsRequired();
b.Property<decimal>("Preis");
b.Property<int>("UnterrichtsTyp");
b.HasKey("Id");
b.ToTable("Kurse");
});
modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
{
b.Property<int>("SchuelerId");
b.Property<int>("KursId");
b.HasKey("SchuelerId", "KursId");
b.HasIndex("KursId");
b.ToTable("KursSchueler");
});
modelBuilder.Entity("EVABackend.Models.Schueler", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<string>("Name")
.IsRequired();
b.Property<string>("Vorname")
.IsRequired();
b.HasKey("Id");
b.ToTable("Schueler");
});
modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
{
b.HasOne("EVABackend.Models.Kurs", "Kurs")
.WithMany("KursSchueler")
.HasForeignKey("KursId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("EVABackend.Models.Schueler", "Schueler")
.WithMany("KursSchueler")
.HasForeignKey("SchuelerId")
.OnDelete(DeleteBehavior.Cascade);
});
#pragma warning restore 612, 618
}
}
}

87
Backend/EVABackend/EVABackend/Models/EVAContext.cs

@ -1,4 +1,5 @@
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
@ -8,12 +9,17 @@ namespace EVABackend.Models
public class EVAContext : DbContext
{
public DbSet<Schueler> Schueler { get; set; }
public DbSet<Dozent> Donzenten { get; set; }
public DbSet<Kurs> Kurse { get; set; }
public DbSet<KursSchueler> KursSchueler { get; set; }
public DbSet<Unterricht> Unterrichte { get; set; }
public DbSet<Instrument> Instrumente { get; set; }
public DbSet<Raum> Raeume { get; set; }
public DbSet<Antrag> Antraege { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=eva.db");
optionsBuilder.UseSqlite("Data Source=eva_ls.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
@ -33,7 +39,7 @@ namespace EVABackend.Models
}
}
public class Schueler
public abstract class Person
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@ -42,9 +48,38 @@ namespace EVABackend.Models
public string Name { get; set; }
[Required]
public string Vorname { get; set; }
public DateTime Geburtsdatum { get; set; }
[Required]
public string Geburtsort { get; set; }
public int PLZ { get; set; }
[Required]
public string Ort { get; set; }
[Required]
public string Strasse { get; set; }
[Required]
public string Telefon { get; set; }
[Required]
public string EMail { get; set; }
[Required]
public string Bankname { get; set; }
[Required]
public string BLZ { get; set; }
[Required]
public string KontoNr { get; set; }
public virtual ICollection<KursSchueler> KursSchueler { get; set; }
}
public class Schueler : Person
{
public bool IstErmaessigt { get; set; }
}
public class Dozent : Person
{
public decimal Stundensatz { get; set; }
public virtual ICollection<Instrument> Instrumente { get; set; }
}
public class Kurs
{
[Key]
@ -52,10 +87,12 @@ namespace EVABackend.Models
public int Id { get; set; }
[Required]
public string Name { get; set; }
public decimal Preis { get; set; }
public int Laufzeit { get; set; }
public int Kuendigungsfrist { get; set; }
public bool Bestaetigt { get; set; }
public UnterrichtTyp UnterrichtsTyp { get; set; }
public virtual ICollection<Instrument> Instrumente { get; set; }
public virtual ICollection<Unterricht> Unterrichte { get; set; }
public virtual ICollection<KursSchueler> KursSchueler { get; set; }
}
@ -67,8 +104,50 @@ namespace EVABackend.Models
public virtual Kurs Kurs { get; set; }
}
public class Unterricht
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public DateTime Startzeit { get; set; }
public string Notiz { get; set; }
public Raum Raum { get; set; }
}
public class Raum
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public bool Belegt { get; set; }
public virtual ICollection<Instrument> Instrumente { get; set; }
}
public class Antrag
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public Schueler Schueler { get; set; }
public UnterrichtTyp UnterrichtTyp { get; set; }
public virtual ICollection<Instrument> Instrumente { get; set; }
}
public enum UnterrichtTyp
{
Einzel, Gruppe
Einzel, Gruppe, MusikalischFrueherziehung
}
public class Instrument
{
public int Id { get; set; }
public InstrumentTyp InstrumentTyp { get; set; }
}
public enum InstrumentTyp
{
Klavier, Schlagzeug, Geige, Gitarre, Band
}
}

BIN
Backend/EVABackend/EVABackend/eva.db

Binary file not shown.
Loading…
Cancel
Save