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?
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 -
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.