实体框架核心-设置要在弹性池中配置的Azure SQL实例不是T-SQL

问题描述

上下文

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

问题

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

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

现在,我希望底层的T-sql像这样: CREATE DATABASE [DatabaseSomething] ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = ElasticPoolSomething ) ) ;

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

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

其他信息

  • 对于我们Azure中的实际Elastic Pool尝试已经失败了很多,我目前正在针对本地sql实例进行测试,该实例显然没有Elastic Pool,但是我认为生成的T-sql仍会反映那个设定。还是我错了?
  • 也尝试过:modelBuilder.HasPerformanceLevelsql($"ELASTIC_POOL (name = {_elasticPoolName})");(无方括号)
  • 也尝试过:modelBuilder.HasPerformanceLevelsql($"SERVICE_OBJECTIVE = ELASTIC_POOL (name = [{_elasticPoolName}])");

有人知道我可能会想念的东西吗?还是为什么会这样?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)