如何防止 EF 创建数据库?
How to prevent EF from Creating database?
我正在尝试上传我的 Asp.net Mvc 网站。我使用代码优先方法。现在我在服务器上创建一个数据库并将我的文件上传到 Cpanel。但是当我打开网站时出现此错误:
CREATE DATABASE permission denied in database 'master'.
我知道这是因为 EF,但我不知道如何解决它。
我试图关闭数据库初始化,但这并没有帮助。然后我试图通过这个禁用迁移:
public Configuration()
{
AutomaticMigrationsEnabled = false;
ContextKey = "blah";
}
但这也无济于事。谁能帮帮我?
CreateDatabaseIfNotExists:这是默认初始化程序。顾名思义,如果 none 根据配置存在,它将创建数据库。但是,如果您更改模型 class 然后 运行 使用此初始化程序的应用程序,那么它将抛出异常。
public SchoolDBContext(): base("SchoolDBConnectionString")
{
Database.SetInitializer<SchoolDBContext>(new CreateDatabaseIfNotExists<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseIfModelChanges<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseAlways<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new SchoolDBInitializer());
}
public DbSet<Student> Students { get; set; }
public DbSet<Standard> Standards { get; set; }
您可以像这样将初始化程序设置为 null :
public TestDBContext(): base("TestDBConnectionString")
{
Database.SetInitializer<TestDbContext>(null);
}
public DbSet<TestEntity> TestEntities { get; set; }
我正在尝试上传我的 Asp.net Mvc 网站。我使用代码优先方法。现在我在服务器上创建一个数据库并将我的文件上传到 Cpanel。但是当我打开网站时出现此错误:
CREATE DATABASE permission denied in database 'master'.
我知道这是因为 EF,但我不知道如何解决它。
我试图关闭数据库初始化,但这并没有帮助。然后我试图通过这个禁用迁移:
public Configuration()
{
AutomaticMigrationsEnabled = false;
ContextKey = "blah";
}
但这也无济于事。谁能帮帮我?
CreateDatabaseIfNotExists:这是默认初始化程序。顾名思义,如果 none 根据配置存在,它将创建数据库。但是,如果您更改模型 class 然后 运行 使用此初始化程序的应用程序,那么它将抛出异常。
public SchoolDBContext(): base("SchoolDBConnectionString")
{
Database.SetInitializer<SchoolDBContext>(new CreateDatabaseIfNotExists<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseIfModelChanges<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new DropCreateDatabaseAlways<SchoolDBContext>());
//Database.SetInitializer<SchoolDBContext>(new SchoolDBInitializer());
}
public DbSet<Student> Students { get; set; }
public DbSet<Standard> Standards { get; set; }
您可以像这样将初始化程序设置为 null :
public TestDBContext(): base("TestDBConnectionString")
{
Database.SetInitializer<TestDbContext>(null);
}
public DbSet<TestEntity> TestEntities { get; set; }