- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您有现有数据库,并且想要将 ASP.NET Identity 表包含到其中,则可能会遇到此错误。开始时,您可能不知道如何将[AspNetRoles]、[AspNetUserClaims]、[AspNetUsers]、[AspNetUserLogins] 表集成到现有数据库中。尽管有很多关于这个主题的资源,但这个答案尽量简短明了。您可能希望将 Entity Framework 中的数据库优先方法与 ASP.NET MVC 的 ASP.NET Identity 功能结合使用。这是一个非常简短的傻瓜教程。如果我的英语很差,我很抱歉。
最佳答案
这是 Asp.NET Identity 表与现有数据库的最短集成。
1) 在 Visual Studio(2015 或 2013)中打开新项目或现有项目。打开服务器资源管理器并打开DefaultConnection。找到您的身份表。 (在 WebConfig 文件中,localDB 连接字符串应该处于事件状态。并且其他现有数据库的连接字符串不应处于事件状态。)双击您的 [AspNetRoles]、[AspNetUserClaims]、[AspNetUsers]、[AspNetUserLogins] 表。并复制他们所有的 SQL 代码。
2) 在 SQL Server Management Studio 中打开现有数据库,右键单击您的数据库,然后单击您在第一部分中复制的内容之后的新建查询。你会经历这样的事情:
CREATE TABLE [dbo].[AspNetRoles] (
[Id] NVARCHAR (128) NOT NULL,
[Name] NVARCHAR (256) NOT NULL,
CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [RoleNameIndex]
ON [dbo].[AspNetRoles]([Name] ASC);
CREATE TABLE [dbo].[AspNetUsers] (
[Id] NVARCHAR (128) NOT NULL,
[Email] NVARCHAR (256) NULL,
[EmailConfirmed] BIT NOT NULL,
[PasswordHash] NVARCHAR (MAX) NULL,
[SecurityStamp] NVARCHAR (MAX) NULL,
[PhoneNumber] NVARCHAR (MAX) NULL,
[PhoneNumberConfirmed] BIT NOT NULL,
[TwoFactorEnabled] BIT NOT NULL,
[LockoutEndDateUtc] DATETIME NULL,
[LockoutEnabled] BIT NOT NULL,
[AccessFailedCount] INT NOT NULL,
[UserName] NVARCHAR (256) NOT NULL,
CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
ON [dbo].[AspNetUsers]([UserName] ASC);
CREATE TABLE [dbo].[AspNetUserRoles] (
[UserId] NVARCHAR (128) NOT NULL,
[RoleId] NVARCHAR (128) NOT NULL,
CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_UserId]
ON [dbo].[AspNetUserRoles]([UserId] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_RoleId]
ON [dbo].[AspNetUserRoles]([RoleId] ASC);
CREATE TABLE [dbo].[AspNetUserLogins] (
[LoginProvider] NVARCHAR (128) NOT NULL,
[ProviderKey] NVARCHAR (128) NOT NULL,
[UserId] NVARCHAR (128) NOT NULL,
CONSTRAINT [PK_dbo.AspNetUserLogins] PRIMARY KEY CLUSTERED ([LoginProvider] ASC, [ProviderKey] ASC, [UserId] ASC),
CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_UserId]
ON [dbo].[AspNetUserLogins]([UserId] ASC);
CREATE TABLE [dbo].[AspNetUserClaims] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[UserId] NVARCHAR (128) NOT NULL,
[ClaimType] NVARCHAR (MAX) NULL,
[ClaimValue] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_UserId]
ON [dbo].[AspNetUserClaims]([UserId] ASC);
如果您忘记了以 GO 开头的行,您将准确地看到该问题标题中的错误。运行此查询并等待成功创建表。您的现有数据库现已准备好支持 Asp.NET MVC 5 的身份功能。
3) 在 Visual Studio 中打开 WebConfig。我们将在这里更改连接字符串。写下这个:
<add name="DefaultConnection" connectionString="Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATABASE_NAME;Persist Security Info=True;User ID=YOUR_USER_ID;Password=YOUR_PASSWORD.;MultipleActiveResultSets=True;Application Name=EntityFramework" providerName="System.Data.SqlClient"/>
而不是 localDB 连接字符串。这是哪个:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-....mdf;Initial Catalog=aspnet-...;Integrated Security=True" providerName="System.Data.SqlClient" />
这就是您需要做的全部。运行您的项目并注册。您可以在现有数据库的 AspNetUsers 表中查看新用户数据。
关于asp.net - Asp.NET MVC 5 Entity Framework 中的无效对象名称 'dbo.AspNetUsers',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040976/
在查询中写入以下内容有区别吗: SELECT * FROM dbo.Product 相比于: SELECT * FROM [dbo].[Product] 一个比另一个好还是无关紧要? 最佳答案 没有区
这是有效的 dbo.dbo 吗?如果是,那是什么意思?我在别人写的查询中发现了这一点: 从dbo.tmp_BDCode aob inner join dbo.dbo.tmp_BDCode_03 ao
当我创建一个新表时,我知道我可以执行以下操作: CREATE TABLE Users ( [Id] INT NOT NULL PRIMARY KEY ) 但是 [dbo].以下示例中的部分含义
我正在将一个使用 Membership 的现有网络应用程序移植到一个使用 Identity 的新应用程序。我已经更新了所有表定义,在 VS Community Edition 2015 版本 14.0
我正在使用 Entity Framework 5 并执行一个简单的查询以从表中获取一些用户。 SQL 数据库已经创建,所以我使用我的实体作为映射我所拥有的东西的一种方式。 当我运行我的查询时,我检测到
我使用了以下分割函数: CREATE FUNCTION dbo.Splitfn(@String varchar(8000), @Delimiter char(1)) returns @te
我使用的是 sql server 2008 r2。 我想为我的所有作业创建脚本以进行备份。 我需要找到一个作业中存在的所有对象。现在我可以做到了,但是 为了实现这个目标,我得到了这个查询的所有运算符
我有一个带有一些函数和触发器的 SQL 项目。 在 Visual Studio 2010 中,我可以只指定数据库连接字符串并进行部署。这很好用。 但是现在迁移到 Visual Studio 2013
我们的应用程序不需要身份使用的过多“登录”和“声明”功能。如果没有在数据库中创建这些表 simlpy 就好了,但我不想重新实现所有身份类... 我猜是这样的 public ApplicationDbC
我已经设置了正确的 SQL Server 版本并添加了 master 数据库作为数据库引用。 在添加引用之前和之后,master 数据库有几个 Unresolved 引用,所有这些引用都消失了。 只有
我刚刚在 TFS2012 服务器上下载并安装了 Team Foundation Server 2012 Update 1,现在无法配置构建 Controller 或编辑构建定义。 我从这里下载了更新:
我在服务器中发送请求。 $custormerParams = array( "CustomerID" =>123, "CustomerAltID" =>'cus
您好,我在 sqlserver 2008 中创建了一个 udf 函数...当我尝试访问它时出现错误“无效的对象名称 'dbo.Function_Client”我想从表中返回记录数并将其分配给变量以返回
当我扫描我的数据库时,它显示了一个结果,如 VA1143 'dbo' user should not be used for normal service operation in 漏洞评估扫描 他们
我已经尝试用以下 100 种不同的方式编写代码,但无法找出正确的语法。看来无论我怎么写, $loggeduser 都不会传递给 WHERE 用户名。我究竟做错了什么?什么是正确的语法? $query
在我的本地或专用服务器上,当我创建一个表时,我看到表名如下: dbo.Foo 因为我从某个 plesk 环境中获得了一个数据库帐户,所以创建的表的名称为: mydbuser.Foo 前缀对我的代码有何
我从旧的 sql server (2000) 导入了一堆表到我的 2008 数据库。所有导入的表都以我的用户名为前缀,例如:jonathan.MovieData。在表 properties 中,它将
我的一位同事给我一项任务,要确保存储过程中的所有表名和页面都包含相关模式? 例如,如果我在数据库中有一个表是 dbo.table1,那么在查询中如果我有: Select * from table1 他
我收到此错误:[SqlException (0x80131904): Invalid object name 'dbo.UserRoles'.],但我无法捕捉到错误所在。我可以从其他表中检索其他数据,
在此问题上,我的SQL出现问题,我已经从sys.servers中选择了*,以检查是否列出了我的服务器。 我还从sys.servers中执行了查询选择名称,并且列出了我的服务器名称。 这是我的代码
我是一名优秀的程序员,十分优秀!