Rafael León
Rafael León

Reputation: 81

Create basic edition database in Azure with Entity Framework Code First

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

Answers (1)

Alberto Morillo
Alberto Morillo

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

Related Questions