Browse Source

:constuction: ERD mit Code-First Implementation begonnen

develop
Tobi 7 years ago
parent
commit
035415dcaa
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. 74
      Backend/EVABackend/EVABackend/Models/EVAContext.cs
  5. BIN
      Backend/EVABackend/EVABackend/eva.db

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

@ -0,0 +1,85 @@
// <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

@ -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<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

@ -0,0 +1,83 @@
// <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
}
}
}

74
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> Schueler { get; set; }
public DbSet<Kurs> Kurse { get; set; }
public DbSet<KursSchueler> KursSchueler { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=eva.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<KursSchueler>()
.HasKey(c => new { c.SchuelerId, c.KursId });
modelBuilder.Entity<KursSchueler>()
.HasOne(c => c.Schueler)
.WithMany(c => c.KursSchueler)
.HasForeignKey(c => c.SchuelerId);
modelBuilder.Entity<KursSchueler>()
.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> 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> 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
}
}

BIN
Backend/EVABackend/EVABackend/eva.db

Binary file not shown.
Loading…
Cancel
Save