【问题标题】:Create basic edition database in Azure with Entity Framework Code First使用 Entity Framework Code First 在 Azure 中创建基本版本数据库
【发布时间】:2018-03-26 16:57:38
【问题描述】:

我正在尝试使用 EF-Code First 在我的 Azure 订阅中创建一个基本版本数据库,但我找不到设置版本的方法。 Always 数据库是在标准版中创建的。 我正在使用DbContext.Database.CreateIfNotExists () 方法。

【问题讨论】:

    标签: entity-framework azure ef-code-first azure-sql-database


    【解决方案1】:

    不幸的是,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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多