Reputation: 81
I'm trying to create a basic edition database in my Azure suscription using EF-Code First but I don't find the way to set the edition. Always database is created in standar edition.
I'm using DbContext.Database.CreateIfNotExists ()
method.
Upvotes: 2
Views: 92
Reputation: 15618
Unfortunately, EF relies on the default parameters when it creates a new database. You can choose to overwrite the default behavior by creating your own database initializer for EF.
public class BloggingContextCustomInitializer : IDatabaseInitializer<BloggingContext>
{
public void InitializeDatabase(BloggingContext context)
{
if (!context.Database.Exists())
{
SqlConnectionStringBuilder connstrBldr = new SqlConnectionStringBuilder(context.Database.Connection.ConnectionString);
connstrBldr.InitialCatalog = "master";
using (SqlConnection conn = new SqlConnection(connstrBldr.ConnectionString))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE DATABASE [" + context.Database.Connection.Database + "] (EDITION = 'Basic')";
cmd.ExecuteNonQuery();
}
Database.SetInitializer(new CreateDatabaseIfNotExists<BloggingContext>());
context.Database.Initialize(force: true);
}
}
}
Upvotes: 1