Entity Frameworkの使用中にアイテムをリストに追加する方法を理解するのが難しいです。 シードメソッドを使用してオプションを追加しようとすると、自分のデータベースが作成され、テーブルはそこにありますが、私のオプションのテーブルは空のままです。Entity Frameworkを使用してリストプロパティにアイテムを追加する方法
私のオプションを正しく追加してデータベースに表示され、正しい車両にリンクされるようにするにはどうすればよいですか?
は、私は2つのモデルがあります:
車
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);
}
}
}
そしてオプション
public class Optie
{
public virtual int OptieId { get; set; }
public virtual string Naam { get; set; }
public Optie(string naam)
{
Naam = naam;
}
}
をそして、これは私の種子/初期化子です
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);
}
}
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);
}
}
は、あなたのGlobal.aspxコードをしてください共有しますか? –
@NazmulHasan done – Vahx
あなたの種子メソッドが確実に呼び出していますか?あなたはマイグレーションについて考えていますか?してください。何が起こっている? –