无法让我的数据库播种ASP.NET MVC 3

时间:2012-06-22 00:09:51

标签: asp.net asp.net-mvc-3

我在尝试让我的数据库首先使用实体​​框架/代码播种时遇到问题。我是.NET的初学者,我尝试了很多解决方案,但没有一个能为我工作。

我做错了什么?我发布了最相关的代码......非常感谢任何帮助。

SampleData.cs

    namespace seed2.Models
{
    public class SampleData : DropCreateDatabaseAlways<AirplaneDB>
    {
        protected override void Seed(AirplaneDB context)
        {
            var airplane = new List<Airplane>()
            {
                new Airplane { AirplaneId = 1, Make = "Great Planes"},
                new Airplane { AirplaneId = 2, Make = "Eflite"}
            };
            base.Seed(context);
        }

    }
}

的Web.Config

<add name="AirplaneDB"
     connectionString="data source=|DataDirectory|Airplanes.sdf"
     providerName="System.Data.SqlServerCe.4.0"/>

AirplaneDB.cs(上下文)

public class AirplaneDB : DbContext
{
    public DbSet<Airplane> Airplanes { get; set; }
}

Airplane.cs

public class Airplane
{
    public int AirplaneId { get; set; }
    public string Make { get; set; }
}

2 个答案:

答案 0 :(得分:1)

首先,将它添加到Global.asax.cs的Application_Start()方法:

System.Data.Entity.Database.SetInitializer(new seed2.Models.SampleData());

确保您实际在浏览器中刷新视图。重新构建解决方案不会使数据库失败。

最后,您应该在种子方法中添加airplane.ForEach(x => context.Airplanes.Add(x));并删除base.Seed(context)

答案 1 :(得分:0)

我看不到你保存像context.SaveChanges()这样的更改请尝试在base.Seed(context)之后添加这一行