问题
I use EF 6. My existing code is :
public void CreateOrUpdateCompanyDb(string companyDbName)
{
try
{
string connectionString = _connectionStringProvider.GetConnectionString(companyDbName);
DbMigrationsConfiguration cfg = CreateMigrationsConfig(connectionString);
cfg.AutomaticMigrationsEnabled = false;
cfg.AutomaticMigrationDataLossAllowed = false;
DbMigrator dbMigrator = new DbMigrator(cfg);
dbMigrator.Update();
}
catch (MigrationsException exception)
{
_logger.Error(string.Format("Error creating company database '{0}'",companyDbName), exception);
}
}
with connection string as follows :
Server=tcp:xxx.database.windows.net,1433;Database=companyDbName;User ID=xxx@xxx;Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
which creates the database for the particular company. But the problem is that the created database is from the now retired Web Edition but I want to create Basic/Standard/Premium edition.
How should I manipulate the connection string so that the edition of the database is the desired one?
回答1:
The Edition of Sql Azure Database is something you can specify in Create Database command. AFAIK, you can't specify it using the connection string.
Syntax -
CREATE DATABASE database_name [ COLLATE collation_name ]
{
(<edition_options> [, ...n])
}
<edition_options> ::=
{
MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB
| EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' }
| SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' }
}
[;]
Given that, for your scenario, two options come to mind -
Before using
DbMigrator
, explicitly write code which creates the database, if it does not exist using traditionalADO.Net
.The other option which comes to mind, but I don't know enough about and you could dig into if you want to, is to somehow find a way to hook into EF, so that you could customize the
Create Database
command it must generate.
来源:https://stackoverflow.com/questions/27617969/how-to-programatically-create-sql-azure-database-of-type-basic-standard-edition