首页 > 解决方案 > Entity Framework Core - 将 Azure SQL 实例设置为在弹性池中预配(不是 T-SQL)

问题描述

语境

我们有一系列用于测试的开发数据库 - Azure SQL。这些数据库经常被删除并重新创建。我们想开始使用弹性池来更好地管理成本。我们正在使用 Entity Framework Core 以 Code First 策略创建和升级数据库。有可能不想将池用于一个或多个环境,因此这应该是可配置的,因此,迁移似乎不是一个可行的选择。

问题

因此,我在尝试使用 EF Core 在弹性池中配置实例时遇到了麻烦。根据链接上的信息,我尝试了以下方法: modelBuilder.HasPerformanceLevelSql($"ELASTIC_POOL (name = [{_elasticPoolName}])");

这是OnModelCreating(ModelBuilder modelBuilder)在 DBContext 内部设置的。

现在,我预计底层的 T-SQL 是这样的: CREATE DATABASE [DatabaseSomething] ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = ElasticPoolSomething ) ) ;

但是,启用记录器并查看实际生成的底层 T-SQL 后,我只看到: CREATE DATABASE [DatabaseSomething];

就好像 EF 忽略了模型构建器上的 ELASTIC_POOL 设置。

附加信息

有没有人知道我可能会错过的东西?或者为什么会这样?

提前致谢!

标签: c#entity-framework-coreazure-sql-databaseazure-elasticpool

解决方案


推荐阅读