使用 Entity Framework Code First 在 Azure 中创建基本版数据库
Create basic edition database in Azure with Entity Framework Code First
我正在尝试使用 EF-Code First 在我的 Azure 订阅中创建一个基本版本数据库,但我找不到设置版本的方法。 Always 数据库是在标准版中创建的。
我正在使用 DbContext.Database.CreateIfNotExists ()
方法。
不幸的是,EF 在创建新数据库时依赖于默认参数。您可以选择通过为 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);
}
}
}
我正在尝试使用 EF-Code First 在我的 Azure 订阅中创建一个基本版本数据库,但我找不到设置版本的方法。 Always 数据库是在标准版中创建的。
我正在使用 DbContext.Database.CreateIfNotExists ()
方法。
不幸的是,EF 在创建新数据库时依赖于默认参数。您可以选择通过为 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);
}
}
}