У меня сейчас проблемы с заполнением базы данных, и я понятия не имею, что мне здесь не хватает.
Это мой код на данный момент:
Сначала мой класс DbInitializer:
public class DbInitializer
{
public static void Initialize(MedContext context)
{
context.Database.EnsureCreated();
// Look for any meds.
if (context.Medicijnen.Any())
{
return; // DB has been seeded
}
var categoriën = new Categorie[]
{
new Categorie { Omschrijving = "Pijn, koorts, ontsteking" },
new Categorie { Omschrijving = "Aandoeningen van de luchtwegen" },
new Categorie { Omschrijving = "Allergie" },
new Categorie { Omschrijving = "Darmaandoeningen" },
new Categorie { Omschrijving = "Depressie, psychose" },
new Categorie { Omschrijving = "Diabetes" },
new Categorie { Omschrijving = "Hart- en vaataandoeningen" },
new Categorie { Omschrijving = "Hoest, verkoudheid" },
new Categorie { Omschrijving = "Infecties" },
new Categorie { Omschrijving = "Migraine" }
};
foreach (Categorie c in categoriën)
{
context.Categoriën.Add(c);
}
context.SaveChanges();
var medicijnen = new Medicijn[]
{
new Medicijn{Naam="Dafalgan",Vorm="Tabletten",CategorieID=1,Prijs=4.65,Dosis="500mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Dafalgan Forte",Vorm="Tabletten",CategorieID=1,Prijs=5.05,Dosis="1g",AantalEenheden="16",AantalOpVoorraad=4},
new Medicijn{Naam="Dafalgan Codeine",Vorm="Bruistabletten",CategorieID=1,Prijs=8.03,Dosis="30mg",AantalEenheden="32",AantalOpVoorraad=5},
new Medicijn{Naam="Symbicort",Vorm="Inhalatiepoeder",CategorieID=2,Prijs=35.09,Dosis="160mcg/dosis",AantalEenheden="120",AantalOpVoorraad=5},
new Medicijn{Naam="Zaditen",Vorm="Siroop",CategorieID=2,Prijs=13.70,Dosis="1mg/5ml",AantalEenheden="40ml",AantalOpVoorraad=2},
new Medicijn{Naam="Singulair",Vorm="Tabletten",CategorieID=2,Prijs=22.22,Dosis="10mg",AantalEenheden="28",AantalOpVoorraad=5},
new Medicijn{Naam="Reactine",Vorm="Tabletten",CategorieID=3,Prijs=5.00,Dosis="10mg",AantalEenheden="7",AantalOpVoorraad=1},
new Medicijn{Naam="Zyrtec",Vorm="Tabletten",CategorieID=3,Prijs=5.21,Dosis="10mg",AantalEenheden="7",AantalOpVoorraad=1},
new Medicijn{Naam="Aerius",Vorm="Tabletten",CategorieID=3,Prijs=13.19,Dosis="5mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Purgo-Pil",Vorm="Tabletten",CategorieID=4,Prijs=7.10,Dosis="10mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Duphalac",Vorm="Zakjes", CategorieID=4,Prijs=11.36,Dosis="10g/15ml",AantalEenheden="20",AantalOpVoorraad=5},
new Medicijn{Naam="Imodium",Vorm="Capsulen",CategorieID=4,Prijs=8.31,Dosis="2mg",AantalEenheden="20",AantalOpVoorraad=5},
new Medicijn{Naam="Solian",Vorm="Tabletten",CategorieID=5,Prijs=87.12,Dosis="400mg",AantalEenheden="60",AantalOpVoorraad=5},
new Medicijn{Naam="Abilify",Vorm="Tabletten",CategorieID=5,Prijs=59.77,Dosis="10mg",AantalEenheden="28",AantalOpVoorraad=5},
new Medicijn{Naam="Leponex",Vorm="Tabletten",CategorieID=5,Prijs=7.07,Dosis="25mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Amarylle",Vorm="Tabletten",CategorieID=6,Prijs=7.52,Dosis="2mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Amarylle",Vorm="Tabletten",CategorieID=6,Prijs=9.05,Dosis="3mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Amarylle",Vorm="Tabletten",CategorieID=6,Prijs=10.59,Dosis="4mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Lescol",Vorm="Capsulen",CategorieID=7,Prijs=22.58,Dosis="40mg",AantalEenheden="98",AantalOpVoorraad=5},
new Medicijn{Naam="Lipitor",Vorm="Tabletten",CategorieID=7,Prijs=24.46,Dosis="80mg",AantalEenheden="98",AantalOpVoorraad=5},
new Medicijn{Naam="Pravasine",Vorm="Tabletten",CategorieID=7,Prijs=39.89,Dosis="40mg",AantalEenheden="98",AantalOpVoorraad=5},
new Medicijn{Naam="Lysox",Vorm="Zakjes",CategorieID=8,Prijs=7.20,Dosis="200mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Lysomucil",Vorm="Zakjes",CategorieID=8,Prijs=7.50,Dosis="200mg",AantalEenheden="30",AantalOpVoorraad=5},
new Medicijn{Naam="Siroxyl",Vorm="Siroop",CategorieID=8,Prijs=4.53,Dosis="100mg/5ml",AantalEenheden="25ml",AantalOpVoorraad=5},
new Medicijn{Naam="Balsoclase Dextromethorphan",Vorm="Siroop",CategorieID=8,Prijs=6.42,Dosis="15mg/5ml",AantalEenheden="25ml",AantalOpVoorraad=5},
new Medicijn{Naam="Zovirax Labialis",Vorm="Crème",CategorieID=9,Prijs=8.57,Dosis="50mg/g",AantalEenheden="2g",AantalOpVoorraad=5},
new Medicijn{Naam="Clamoxyl",Vorm="Capsulen",CategorieID=9,Prijs=6.68,Dosis="500mg",AantalEenheden="16",AantalOpVoorraad=5},
new Medicijn{Naam="Zovirax",Vorm="Tabletten",CategorieID=9,Prijs=63.92,Dosis="800mg",AantalEenheden="35",AantalOpVoorraad=5},
new Medicijn{Naam="Augmentin",Vorm="Tabletten",CategorieID=9,Prijs=9.71,Dosis="125mg",AantalEenheden="10",AantalOpVoorraad=5},
new Medicijn{Naam="Sibelium",Vorm="Tabletten",CategorieID=10,Prijs=19.91,Dosis="10mg",AantalEenheden="28",AantalOpVoorraad=5},
new Medicijn{Naam="Zomig Instant",Vorm="Tabletten",CategorieID=10,Prijs=42.14,Dosis="2,5mg",AantalEenheden="6",AantalOpVoorraad=5},
new Medicijn{Naam="Zomig Instant",Vorm="Tabletten",CategorieID=10,Prijs=66.96,Dosis="2,5mg",AantalEenheden="12",AantalOpVoorraad=5}
};
foreach (Medicijn m in medicijnen)
{
context.Medicijnen.Add(m);
}
context.SaveChanges();
var klanten = new Klant[]
{
new Klant{Voornaam="Jorgi",Achternaam="Leus",Adres="Jorgilaan 42",Telefoon="014 31 74 74"},
new Klant{Voornaam="Jelmar",Achternaam="Van Aert",Adres="Jellylane 24",Telefoon="014 37 79 74"},
new Klant{Voornaam="Krikke",Achternaam="Van Doren",Adres="Krikstraat 7",Telefoon="014 58 02 01"},
new Klant{Voornaam="Jozef",Achternaam="Den Heilige",Adres="Kerkdreef 3",Telefoon="013 02 45 78"},
new Klant{Voornaam="Japiano",Achternaam="Music",Adres="Jamlane 1",Telefoon="014 21 23 65"},
new Klant{Voornaam="Jonas",Achternaam="De Vlaai",Adres="Taartstraat 66",Telefoon="014 89 00 54"}
};
foreach (Klant k in klanten)
{
context.Klanten.Add(k);
}
context.SaveChanges();
var bestellingen = new Bestelling[]
{
new Bestelling{MedicijnID=1,KlantID=1,BestellingsDatum=DateTime.Parse("2017-09-01")},
new Bestelling{MedicijnID=3,KlantID=1,BestellingsDatum=DateTime.Parse("2017-09-01")}
};
foreach (Bestelling b in bestellingen)
{
context.Bestellingen.Add(b);
}
context.SaveChanges();
}
}
Мой класс контекста:
public class MedContext: DbContext
{
public MedContext(DbContextOptions<MedContext> options) : base(options)
{
}
public virtual DbSet<Medicijn> Medicijnen { get; set; }
public virtual DbSet<Klant> Klanten { get; set; }
public virtual DbSet<Bestelling> Bestellingen { get; set; }
public virtual DbSet<Categorie> Categoriën { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Medicijn>(entity =>
{
entity.HasKey(e => e.MedicijnID);
entity.Property(e => e.MedicijnID).HasColumnName("MedicijnID");
entity.Property(e => e.Naam).HasColumnName("Naam")
.IsRequired();
entity.Property(e => e.Vorm).HasColumnName("Vorm")
.IsRequired();
entity.Property(e => e.CategorieID).HasColumnName("CategorieID")
.IsRequired();
entity.Property(e => e.AantalEenheden).HasColumnName("Aantal eenheden")
.IsRequired();
entity.Property(e => e.AantalOpVoorraad).HasColumnName("Aantal op voorraad")
.IsRequired();
entity.Property(e => e.Prijs).HasColumnName("Prijs")
.IsRequired();
entity.HasOne(d => d.Categorie)
.WithMany(p => p.Medicijnen)
.HasForeignKey(d => d.CategorieID)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_Medicijnen_Categoriën");
entity.ToTable("Medicijnen");
});
modelBuilder.Entity<Categorie>(entity =>
{
entity.HasKey(e => e.CategorieID);
entity.Property(e => e.CategorieID).HasColumnName("CategorieID")
.IsRequired();
entity.Property(e => e.Omschrijving).HasColumnName("Omschrijving")
.IsRequired();
entity.ToTable("Categoriën");
});
modelBuilder.Entity<Klant>(entity =>
{
entity.HasKey(e => e.KlantID);
entity.Property(e => e.KlantID).HasColumnName("KlantID")
.IsRequired();
entity.Property(e => e.Voornaam).HasColumnName("Voornaam")
.IsRequired();
entity.Property(e => e.Achternaam).HasColumnName("Achternaam")
.IsRequired();
entity.Property(e => e.Adres).HasColumnName("Adres")
.IsRequired();
entity.Property(e => e.Telefoon).HasColumnName("Telefoon");
entity.ToTable("Klanten");
});
modelBuilder.Entity<Bestelling>(entity =>
{
entity.HasKey(e => e.BestellingsID);
entity.Property(e => e.BestellingsID).HasColumnName("BestellingsID")
.IsRequired();
entity.Property(e => e.BestellingsDatum).HasColumnName("Bestellingsdatum")
.IsRequired();
entity.HasOne(d => d.Klant)
.WithMany(p => p.Bestellingen)
.HasForeignKey(d => d.KlantID)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_Bestellingen_Klanten");
entity.ToTable("Bestellingen");
});
}
}
Он фактически создает таблицы каждый раз, включая правильные заголовки столбцов, но единственное, что я получаю, это:

Пожалуйста, помогите мне разобраться в этом, или дайте мне знать, если есть еще фрагменты кода, которые вам нужны, чтобы получить более четкое представление о ситуации.Я новичок в программировании, поэтому я точно не знаю, как все связано.Заранее спасибо!