![](/img/trans.png)
[英]How do I add and update items using Entity Framework Core 5 that have many to many relationships?
[英]How do i add items to a list property using 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);
}
}
您忘記在Seed方法的末尾調用context.SaveChanges()
嗎?
您需要添加以下內容:
private List<Optie> tempList= new List<Optie>();
public List<Optie> Options
{
get
{
return tempList;
}
}
並刪除以下內容:
public VehicleModels()
{
Options = new List<Optie>();
}
public void AddOption(Optie optie) {
if (!Options.Equals(null))
{
Options.Add(optie);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.