2
我正在编写一个MVC 5互联网应用程序,并希望一些帮助来执行种子方法来填充一些实体的数据库。为什么种子方法不被调用?
这里是我的DbContext
代码:
public class CanFindLocationDatabaseContext : DbContext
{
public class SystemInitializer : CreateDatabaseIfNotExists<CanFindLocationDatabaseContext>
{
protected override void Seed(CanFindLocationDatabaseContext context)
{
}
}
}
在我Application_Start
方法,我有以下代码:
System.Data.Entity.Database.SetInitializer<CanFindLocationDatabaseContext>(new CanFindLocation.Context.CanFindLocationDatabaseContext.SystemInitializer());
当我访问任何DbSet
对象在CanFindLocationDatabaseContext
类,种子法没有被执行。在测试种子代码之前没有数据库。
正在创建的数据库和正在创建的表,但在种子方法不被调用并没有在任何表中的数据。
我也有2.1的身份在同一项目中下面的代码:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("CanFindLocationDatabaseContext", throwIfV1Schema: false)
{
}
}
种子方法被调用这个类的DbContext,但不能用于CanFindLocationDatabaseContext
。
这是为什么,我怎么能这样被执行种子法写我的代码?
在此先感谢。
我假设您确定数据库不存在? –
数据库不存在。 – user3736648
确保您在启动调试之前重置IIS或停止您的ASP Developpement服务器或者Visual不会停止并重新启动您的应用程序并阻止Application_Start执行。 –