UserManager抛出有关IdentityRoleId

时间:2016-05-13 07:59:45

标签: c# asp.net entity-framework asp.net-mvc-5 asp.net-identity

我有一个带有个人帐户身份验证的MVC 5项目,以及两个简单的捕获屏幕。

一切正常,直到我决定授予用户注册角色,因此在Register的帖子操作中,UserManager.CreateAsync之后,如果成功,我添加了:

 UserManager.AddToRoleAsync(user.Id, IdentityData.RoleNames.GeneralAdmin);

然后它扔了SqlException: Invalid column name 'IdentityRoleId'

现在,在我尝试授予角色之前,在我使用UserManager,甚至UserManager.CreateAsync时,它会抛出此异常。字符串IdentityRoleId不会出现在项目的任何位置,而是使用列名RoleId创建自己的表的Identity。

我必须补充一点,当我开始这个项目时,我有两个DbContext类,一个是我的业务实体,另一个是自动生成的ApplicationDbContext,其中Identity模型深藏在某个地方。然而,即使在反编译此上下文时,我在RoleId中也只看到IdentityUserRoles

一个分析器跟踪显示了这个查询,我不知道 - 我的代码中没有任何地方。我希望在加载用户并加载用户的角色时会发生这种情况:

exec sp_executesql N'SELECT 
    1 AS [C1], 
    [Extent1].[RoleId] AS [RoleId], 
    [Extent1].[UserId] AS [UserId], 
    [Extent1].[IdentityRoleId] AS [IdentityRoleId]
    FROM [dbo].[IdentityUserRoles] AS [Extent1]
    WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'd299ba29-5266-40a2-b6cd-404588926a5b'

这个幻影IdentityRoleId来自哪里?我应该在哪里看,或者我该怎么做才能追踪它。也许Microsoft.AspNet.Identity.EntityFramework被打破了,或者EF被打破了,但是一切都在运行,直到我今天早上做出的改变,现在已经完全删除了。

0 个答案:

没有答案