.net core 实体框架核心支架-动态模式名称

.net core 实体框架核心支架-动态模式名称,.net-core,entity-framework-core,ef-core-2.2,.net Core,Entity Framework Core,Ef Core 2.2,我现在遇到了一个问题,我们已经创建了一个数据库,所以使用ef scaffold创建了它的模型-创建模型所依据的模式称为“xxxx-dev” 现在,这已经很好了,但为了准备上线,我创建了一个新的DB服务器,并将数据库设置为“xxxx live”。切换了连接字符串,并尝试对其进行查询,但出现错误 脚手架似乎已将架构名称硬编码到OnModelCreating调用中的每个表中,例如: modelBuilder.Entity<xxxx>(entity => { ... entity.To

我现在遇到了一个问题,我们已经创建了一个数据库,所以使用ef scaffold创建了它的模型-创建模型所依据的模式称为“xxxx-dev”

现在,这已经很好了,但为了准备上线,我创建了一个新的DB服务器,并将数据库设置为“xxxx live”。切换了连接字符串,并尝试对其进行查询,但出现错误

脚手架似乎已将架构名称硬编码到OnModelCreating调用中的每个表中,例如:

modelBuilder.Entity<xxxx>(entity =>
{
...
entity.ToTable("xxxx", "xxxx-dev");
...
});
modelBuilder.Entity(Entity=>
{
...
实体。ToTable(“xxxx”、“xxxx开发”);
...
});
这是一个问题,因为在将来,我们可能会有基于同一数据库的多租户站点,显然,覆盖每个查询的连接字符串的查询不是一个很好的体验

不管是在脚手架中还是在运行时,都可以配置架构名称吗?我四处搜索了一下,似乎找不到解决办法


谢谢,

搭建的代码不是一成不变的。只要修改它,这就是它的用途。通过一些变量/参数来提供模式名称是很容易的。问题是,由于未来的开发,每次我们重新构建脚手架时,我们都会丢失修改,不得不重新进行,这是因为脚手架的使用不当。我看到人们总是这样做,但是脚手架的目的是在代码优先(!)开发中给您一个一次性的启动。