diff --git a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs
new file mode 100644
index 0000000..5e44b06
--- /dev/null
+++ b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.Designer.cs
@@ -0,0 +1,85 @@
+//
+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("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Kuendigungsfrist");
+
+ b.Property("Laufzeit");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Preis");
+
+ b.Property("UnterrichtsTyp");
+
+ b.HasKey("Id");
+
+ b.ToTable("Kurse");
+ });
+
+ modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
+ {
+ b.Property("SchuelerId");
+
+ b.Property("KursId");
+
+ b.HasKey("SchuelerId", "KursId");
+
+ b.HasIndex("KursId");
+
+ b.ToTable("KursSchueler");
+ });
+
+ modelBuilder.Entity("EVABackend.Models.Schueler", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("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
+ }
+ }
+}
diff --git a/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs
new file mode 100644
index 0000000..2db1801
--- /dev/null
+++ b/Backend/EVABackend/EVABackend/Migrations/20190515103649_TestCreate1.cs
@@ -0,0 +1,82 @@
+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(nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Name = table.Column(nullable: false),
+ Preis = table.Column(nullable: false),
+ Laufzeit = table.Column(nullable: false),
+ Kuendigungsfrist = table.Column(nullable: false),
+ UnterrichtsTyp = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Kurse", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Schueler",
+ columns: table => new
+ {
+ Id = table.Column(nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Name = table.Column(nullable: false),
+ Vorname = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Schueler", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "KursSchueler",
+ columns: table => new
+ {
+ SchuelerId = table.Column(nullable: false),
+ KursId = table.Column(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");
+ }
+ }
+}
diff --git a/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs b/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs
new file mode 100644
index 0000000..7180a44
--- /dev/null
+++ b/Backend/EVABackend/EVABackend/Migrations/EVAContextModelSnapshot.cs
@@ -0,0 +1,83 @@
+//
+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("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Kuendigungsfrist");
+
+ b.Property("Laufzeit");
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("Preis");
+
+ b.Property("UnterrichtsTyp");
+
+ b.HasKey("Id");
+
+ b.ToTable("Kurse");
+ });
+
+ modelBuilder.Entity("EVABackend.Models.KursSchueler", b =>
+ {
+ b.Property("SchuelerId");
+
+ b.Property("KursId");
+
+ b.HasKey("SchuelerId", "KursId");
+
+ b.HasIndex("KursId");
+
+ b.ToTable("KursSchueler");
+ });
+
+ modelBuilder.Entity("EVABackend.Models.Schueler", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Name")
+ .IsRequired();
+
+ b.Property("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
+ }
+ }
+}
diff --git a/Backend/EVABackend/EVABackend/Models/EVAContext.cs b/Backend/EVABackend/EVABackend/Models/EVAContext.cs
new file mode 100644
index 0000000..793afd8
--- /dev/null
+++ b/Backend/EVABackend/EVABackend/Models/EVAContext.cs
@@ -0,0 +1,74 @@
+using Microsoft.EntityFrameworkCore;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace EVABackend.Models
+{
+ public class EVAContext : DbContext
+ {
+ public DbSet Schueler { get; set; }
+ public DbSet Kurse { get; set; }
+ public DbSet KursSchueler { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ {
+ optionsBuilder.UseSqlite("Data Source=eva.db");
+ }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity()
+ .HasKey(c => new { c.SchuelerId, c.KursId });
+
+ modelBuilder.Entity()
+ .HasOne(c => c.Schueler)
+ .WithMany(c => c.KursSchueler)
+ .HasForeignKey(c => c.SchuelerId);
+
+ modelBuilder.Entity()
+ .HasOne(c => c.Kurs)
+ .WithMany(c => c.KursSchueler)
+ .HasForeignKey(c => c.KursId);
+ }
+ }
+
+ public class Schueler
+ {
+ [Key]
+ [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int Id { get; set; }
+ [Required]
+ public string Name { get; set; }
+ [Required]
+ public string Vorname { get; set; }
+ public virtual ICollection KursSchueler { get; set; }
+ }
+
+ public class Kurs
+ {
+ [Key]
+ [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ 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 UnterrichtTyp UnterrichtsTyp { get; set; }
+ public virtual ICollection KursSchueler { get; set; }
+ }
+
+ public class KursSchueler
+ {
+ public int SchuelerId { get; set; }
+ public int KursId { get; set; }
+ public virtual Schueler Schueler { get; set; }
+ public virtual Kurs Kurs { get; set; }
+ }
+
+ public enum UnterrichtTyp
+ {
+ Einzel, Gruppe
+ }
+}
diff --git a/Backend/EVABackend/EVABackend/eva.db b/Backend/EVABackend/EVABackend/eva.db
new file mode 100644
index 0000000..3cfb609
Binary files /dev/null and b/Backend/EVABackend/EVABackend/eva.db differ