是否有推荐的方法首先使用代码在共享主机上播种数据库

时间:2015-06-24 16:36:50

标签: sql-server asp.net-mvc shared-hosting seeding

每次我将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>)

0 个答案:

没有答案