C# 如何使用实体框架向列表属性添加项
在使用实体框架时,我很难理解如何将项目添加到列表中。 我的数据库已经创建,表也在那里,但是当我尝试通过seed方法添加选项时,选项的表保持为空 如何正确添加选项,使其显示在数据库中并链接到正确的车辆 我有两种型号: 车辆C# 如何使用实体框架向列表属性添加项,c#,entity-framework,asp.net-mvc-4,C#,Entity Framework,Asp.net Mvc 4,在使用实体框架时,我很难理解如何将项目添加到列表中。 我的数据库已经创建,表也在那里,但是当我尝试通过seed方法添加选项时,选项的表保持为空 如何正确添加选项,使其显示在数据库中并链接到正确的车辆 我有两种型号: 车辆 public class VehicleModels { public virtual int Id { get; set; } public virtual string Naam { get; set; } publ
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 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);
}
}
您忘了在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);
}
}
private List templast=new List();
公共列表选项
{
得到
{
返回圣殿骑士;
}
}
并删除以下内容:
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);
}
}
公共车辆模型()
{
选项=新列表();
}
公共无效添加选项(Optie Optie){
如果(!Options.Equals(null))
{
选项。添加(选项);
}
}
请共享您的Global.aspx代码?您确定您的种子方法正在调用吗?你对移民有什么想法吗?那就申请吧。发生了什么事?Seed正在运行,因为车辆被添加,只是没有选项,还没有迁移,我确实手工删除了整个数据库几次,并重新创建它,使它工作欣赏工作,但没有,这对Seed方法中的数据库创建没有影响。我在这个项目中使用的任何文档中也没有提到这一点。