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