gpt4 book ai didi

sql - 有没有办法为 Azure SQL Server 设置默认的 Azure SQL 数据库定价层

转载 作者:行者123 更新时间:2023-12-05 00:08:29 25 4
gpt4 key购买 nike

当使用 Entity Framework 6 的数据库初始化程序创建数据库时,如果不存在与 Azure SQL 服务器连接的数据库,则创建的数据库是使用 vCore 定价模型创建的。

理想情况下,它只需要是一个 S0 DTU 实例,并且我需要找到一种指定它的方法。

是否可以在 Azure SQL 服务器上指定默认数据库类型?或者可以在连接字符串中添加一些魔法来通知它要创建的数据库实例的类型吗?

最佳答案

信用:Torsten Grabs (MSFT) @ MSDN

https://social.msdn.microsoft.com/Forums/windows/en-US/7d7b5cd8-5878-4241-a674-33336010f081/set-service-tiers-when-create-azure-sql-database-from-vs-c-entity-framework?forum=ssdsgetstarted

遗憾的是,EF 在创建新数据库时依赖于默认参数,而 Azure SQL DB 中当前默认是创建 Web 版数据库。您可以选择通过为 EF 创建自己的数据库初始值设定项来覆盖默认行为。该初始化程序会发出 CREATE DATABASE 语句 - 请参阅以下示例,您可以轻松地将其插入 BloggingContext 教程示例代码中进行测试 - 或者只需将 BloggingContext 替换为 DbContext。

    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 = 'standard')";
cmd.ExecuteNonQuery();
}

Database.SetInitializer(new CreateDatabaseIfNotExists<BloggingContext>());
context.Database.Initialize(force: true);
}
}
}

除此之外,请参阅 https://www.sqlshack.com/overview-of-create-database-statement-in-azure-sql-server/

CREATE DATABASE DemoDB</p>
( EDITION = 'standard', SERVICE_OBJECTIVE = 'S0', MAXSIZE = 500 MB ) ;

关于sql - 有没有办法为 Azure SQL Server 设置默认的 Azure SQL 数据库定价层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com