Asp.net mvc 无效的对象名称';dbo.AspNetUsers';在具有标识的MVC5站点中

Asp.net mvc 无效的对象名称';dbo.AspNetUsers';在具有标识的MVC5站点中,asp.net-mvc,entity-framework,asp.net-identity,shared-hosting,Asp.net Mvc,Entity Framework,Asp.net Identity,Shared Hosting,在我的本地机器上,数据库所有者是“dbo”,一切都很好。但随后我将其部署到一个不允许我们使用“dbo”的共享托管站点。相反,表所有者是我连接为的sql server用户。我们叫他“谢尔顿库珀”。所以我所有的表都是sheldoncooper.AspNetUsers、sheldoncooper.AspNetRoles、sheldoncooper.AspNetUserClaims等等 看起来标识系统正在查找硬编码的dbo.AspNetUsers、dbo.AspNetRoles等 我如何告诉它不要键入d

在我的本地机器上,数据库所有者是“dbo”,一切都很好。但随后我将其部署到一个不允许我们使用“dbo”的共享托管站点。相反,表所有者是我连接为的sql server用户。我们叫他“谢尔顿库珀”。所以我所有的表都是sheldoncooper.AspNetUsers、sheldoncooper.AspNetRoles、sheldoncooper.AspNetUserClaims等等

看起来标识系统正在查找硬编码的dbo.AspNetUsers、dbo.AspNetRoles等

我如何告诉它不要键入dbo


[编辑]NVM,这绝对是一个dup。

您可以为每个表指定要使用的架构,但在您的情况下,通过覆盖OnModelCreating方法来全局更改它可能更容易,如下所示:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    // You can globally assign schema here
    modelBuilder.HasDefaultSchema("sheldoncooper");
}

它不是硬编码的,只是默认值。