每次我将MVC站点部署到实时主机(通常是共享主机)时,我最初都会为数据库播种带来麻烦。
我一直在尝试各种各样的事情并最终起作用,但是花费几个小时的反复试验并不罕见。
我在共享主机上创建数据库。然后我使用CreateDatabaseIfNotExists
启动应用。它经常给我无休止的装载'页。
我可能会再次运行应用程序,也许它已经创建了数据库表,但没有填充任何数据库表。
使用任何DropCreateDatabase
选项都不起作用 - 它没有权限(可能是因为在共享主机上)。
冲洗,起泡,重复,直到最后似乎有效!
是否有推荐的方法在共享主机上创建和播种数据库?您有什么建议可以让这项工作更轻松吗?
更新
在Gobal.asax:
Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
在初始化程序中:
public class ApplicationDbInitializer : CreateDatabaseIfNotExists<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext db)
{
var dataSeeder = new DataSeeder(db);
dataSeeder.SeedAll();
base.Seed(db);
}
}
播种只是标准代码,例如:db.Objects.AddRange(List<Object>)