问题描述
上下文
我们有一系列用于测试的开发数据库-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 (将#修改为@)