无法使我的数据库成为ASP.NET MVC 3的种子
我在尝试让数据库首先使用实体框架/代码种子时遇到问题。我是.NET的初学者,我尝试过许多解决方案,但没有一个对我有效 我做错了什么?我正在发布最相关的代码。。。任何帮助都将不胜感激 SampleData.cs无法使我的数据库成为ASP.NET MVC 3的种子,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我在尝试让数据库首先使用实体框架/代码种子时遇到问题。我是.NET的初学者,我尝试过许多解决方案,但没有一个对我有效 我做错了什么?我正在发布最相关的代码。。。任何帮助都将不胜感激 SampleData.cs namespace seed2.Models { public class SampleData : DropCreateDatabaseAlways<AirplaneDB> { protected override void Seed(
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);
}
}
}
我看不到您正在保存诸如context.SaveChanges()之类的更改。请尝试在base.Seed(context)之后添加此行。首先,将其添加到Global.asax.cs的应用程序启动()方法:
System.Data.Entity.Database.SetInitializer(new seed2.Models.SampleData());
确保您实际上正在刷新浏览器中的视图。重新构建解决方案不会为数据库添加种子
最后,您应该添加
airplane.ForEach(x=>context.Airplanes.add(x))
并删除Seed方法中的base.Seed(context)
。context.SaveChanges()也不能做到这一点:-/尝试@davidkennedy85建议的方法,比如airplane.ForEach(a=>context.Airplanes.Add(a));然后调用context.SaveChanges();是的,我忘了贴那部分。我的应用程序启动中确实有这一点。System.Data.Entity.Database.SetInitializer(new-seed2.Models.SampleData());我已经刷新了很多次页面,但仍然没有。。。在这一点上一定有点傻你是否通过进入Project>AddASP.NET folder>Appu Data添加了Appu数据文件夹?尝试添加Airline.ForEach(x=>context.Items.add(x))
并删除base.Seed(context)
。在解决方案分解器中,单击项目名称,然后重试。
public class AirplaneDB : DbContext
{
public DbSet<Airplane> Airplanes { get; set; }
}
public class Airplane
{
public int AirplaneId { get; set; }
public string Make { get; set; }
}
System.Data.Entity.Database.SetInitializer(new seed2.Models.SampleData());