Ich habe Schwierigkeiten zu verstehen, wie Elemente zu meiner Liste hinzugefügt werden, während Entity Framework verwendet wird. Meine Datenbank wurde erstellt und die Tabellen sind dort, aber die Tabelle für meine Optionen bleibt leer, wenn ich versuche, Optionen über meine Seed-Methode hinzuzufügen.Wie füge ich Elemente zu einer Listeneigenschaft mithilfe von Entity Framework hinzu
Wie füge ich meine Optionen korrekt hinzu, so dass sie in meiner Datenbank erscheinen und mit dem richtigen Fahrzeug verknüpft sind?
Ich habe 2 Modelle:
Fahrzeug
public class VehicleModels
{
public virtual int Id { get; set; }
public virtual string Naam { get; set; }
public virtual string Merk { get; set; }
public virtual string Brandstof { get; set; }
public virtual string Kleur { get; set; }
public virtual string TypeVanMerk { get; set; }
public virtual string TypeVanTransmissie { get; set; }
public virtual int Kilometerstand { get; set; }
public virtual int Bouwjaar { get; set; }
public virtual int AantalDeuren { get; set; }
public List<Optie> Options { get; set; }
public VehicleModels()
{
Options = new List<Optie>();
}
public void AddOption(Optie optie) {
if (!Options.Equals(null))
{
Options.Add(optie);
}
}
}
Und Option
public class Optie
{
public virtual int OptieId { get; set; }
public virtual string Naam { get; set; }
public Optie(string naam)
{
Naam = naam;
}
}
Und das ist mein Seed/Initializer
public class VehicleDbInitializer : DropCreateDatabaseAlways<VehicleDB>
{
protected override void Seed(VehicleDB context)
{
context.VehicleModels.Add(new VehicleModels
{
Naam = "Auto 1",
Merk = "Audi",
Brandstof = "Benzine",
Kleur = "Rood",
TypeVanMerk = "A6",
TypeVanTransmissie = "Manueel",
Kilometerstand = 60000,
Bouwjaar = 2002,
AantalDeuren = 5
});
context.VehicleModels.Add(new VehicleModels
{
Naam = "Auto 2",
Merk = "BMW",
Brandstof = "Diesel",
Kleur = "Silver",
TypeVanMerk = "6",
TypeVanTransmissie = "Manueel",
Kilometerstand = 25000,
Bouwjaar = 2012,
AantalDeuren = 3
});
VehicleModels vehicle = new VehicleModels();
vehicle.Naam = "Auto 3";
vehicle.Merk = "Volvo";
vehicle.Brandstof = "Diesel";
vehicle.Kleur = "Silver";
vehicle.TypeVanMerk = "6";
vehicle.TypeVanTransmissie = "Manueel";
vehicle.Kilometerstand = 25000;
vehicle.Bouwjaar = 2012;
vehicle.AantalDeuren = 3;
vehicle.Options.Add(new Optie("Airco"));
vehicle.Options.Add(new Optie("Trekhaak"));
vehicle.Options.Add(new Optie("Airbags"));
context.VehicleModels.Add(vehicle);
base.Seed(context);
}
}
vielleicht
Global.aspx.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
Database.SetInitializer(new VehicleDbInitializer());
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
teilen Global.aspx Code:
und entfernen Sie folgen? –
@NazmulHasan getan – Vahx
bist du sicher, dass deine Seed-Methode aufruft? Hast du eine Ahnung von Migration? dann bewirb dich bitte. was ist los? –