C# 如何使用实体框架向列表属性添加项

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

在使用实体框架时,我很难理解如何将项目添加到列表中。 我的数据库已经创建,表也在那里,但是当我尝试通过seed方法添加选项时,选项的表保持为空

如何正确添加选项,使其显示在数据库中并链接到正确的车辆

我有两种型号:

车辆

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方法中的数据库创建没有影响。我在这个项目中使用的任何文档中也没有提到这一点。