sql-server - .NET Code First 将用户登录添加为默认表架构
问题描述
当我使用 Entity Framework Core 将迁移应用到我的在线数据库时,我遇到了一种奇怪的行为。默认情况下,所有表都将我的连接字符串中定义的 UserId 作为默认模式。我知道如何更改它,但我想了解发生这种情况的原因。请注意,本地数据库不会发生这种情况,架构保持为“dbo”。
解决方案
您可以使用以下方法为用户设置默认架构:
ALTER USER myUser WITH DEFAULT_SCHEMA [myschema]
dbo
因此,如果您愿意,您可以将您的用户设置为具有默认架构。
我猜 dbo 已经设置为您在本地连接的用户的默认架构。
您还可以在 Entity Framework Core 中指定默认架构。请参阅此问题:实体框架核心中的 HasDefaultSchema 在哪里?
请注意,使用不同的用户来应用迁移而不是用于查询等是一个好习惯。