我正在尝试使用EF的Seed方法用一些示例数据填充我的数据库,但是当我尝试运行它时,数据没有被填充。
任何人都知道为什么? 感谢。
的DbContext:
public void Seed(EFloristEntities context)
{
new List<Product>
{
new Product() { Id = 1, ProductName = "Product 1", ProductDescription = "a", Price = 1.0}
}.ForEach(i => context.Products.Add(i));
context.SaveChanges();
}
public DbSet<Product> Products { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderDetails> OrderDetails { get; set; }
public DbSet<Cart> Cart { get; set; }
我的初始化程序:
public class CreateInitializer : CreateDatabaseIfNotExists<EFloristEntities>
{
protected override void Seed(EFloristEntities context)
{
context.Seed(context);
base.Seed(context);
}
}
Global.aspx:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EFloristEntities>());
new EFloristEntities().Database.CreateIfNotExists();
Database.SetInitializer(new CreateInitializer());
答案 0 :(得分:0)
您根本没有在全局文件中初始化数据库。您需要运行以下代码:
EFloristEntities.Database.Initialize(true)
如果您想使用自定义初始值设定程序,我建议您将此代码放在Database.SetInitializer(new CreateInitializer())
调用之下。
答案 1 :(得分:0)
您已将初始化程序配置为使用DropCreateDatabaseIfModelChanges。尝试用DropCreateDatabaseAlways替换它一次。
答案 2 :(得分:0)
在您调用自己的种子代码之后,您似乎正在调用基本初始化程序。