EF Core Update-Database 命令为用户创建架构而不是使用 dbo

Buc*_*ter 5 sql-server migration entity-framework entity-framework-core .net-core

我已经DbContext使用 EF Core 2.0创建了一个,并且已经Update-Database在 PM-Console 中使用的开发环境中应用了大量迁移。这些表是dbo按预期使用localDb 上的架构创建的,正如我从 EF6 所知。

但是,当我将该Update-Database命令应用于 MSSQL Server 上的生产数据库时,它会创建一个名为Domain\Username(我的机器上的用户)的架构。当我使用其指定的域帐户运行服务器应用程序时,它无法访问数据库。作为一种解决方法,我与 IT 基础架构人员商量,允许此帐户在我的计算机上执行软件,并通过使用此帐户执行 VisualStudio 来应用迁移。然后为这个特殊帐户创建一个模式,此后它可以从网络服务器应用程序访问数据库。它有效,因为这个特殊帐户是目前唯一需要直接访问数据库的帐户(除了我自己)。但这应该是一个永久的解决方案。

有谁知道解决方案?该数据库的创建方式与之前的 EF6 项目完全相同。为什么每个用户模式只在将迁移应用到生产系统时使用,而不是在我的开发机器上使用,我如何手动控制模式?我试过了,modelBuilder.HasDefaultSchema("dbo");但这不起作用。实际上它似乎根本没有任何影响。

Pat*_*Pat 4

我遇到了同样的问题,并相信这是由于将我的domain\user列表列在MyDatabase -> Security -> Users. 我通过从用户中删除我的帐户(右键单击 -> 删除)解决了该问题,并且下次运行时在update-database表中正确添加了“dbo”前缀。

在此输入图像描述