【发布时间】:2016-08-25 03:18:07
【问题描述】:
当前项目:
- ASP.NET 4.5.2
- MVC 5
- 身份 2.2.1
我遇到的一个问题是,我在整个项目的其余部分都正确使用了 GUID,数据库字段类型为 UniqueIdentifier。不幸的是,Identity 并不遵循相同的规则,并且出于某种难以理解的原因,他们将表字段创建为字符串——nVarChar(128)。
我发现了一些点击显示如何正确修改 Identity 以使用 UniqueIdentifier 并将 Guid 转换为正确格式,但是所有这些资源目前都已过时 - 大多数用于 pre-v2,而最近的一个是对于2.0.0-alpha,它提供的代码与当前版本的 Identity 不匹配或不工作。
我已经尽我最大的努力去谷歌搜索那里的东西,但要么它不存在,要么我的谷歌软件今天很弱。我正在寻找有关如何将 DB 字段更改为 UniqueIdentifier(适用于 Guid)同时仍然让其他一切正常工作/转换的任何指针。
编辑:似乎有人或系统已将这篇文章作为可能的重复链接到另一篇文章。问题是,我已经链接到另一篇文章,因为它是 v1.x 的 Identity 用法,因此不直接适用。即使是我链接到的 2.0.0-alpha 代码也不起作用。即使是链接文章底部的附加材料,在 2.2.1 下也不起作用。
【问题讨论】:
-
对不起,不是重复的。我不是想将 GUID 更改为整数,而是尝试将 DB 字段从 nvarchar(128) 更改为 UniqueIdentifier。我仍在使用 GUID,但我想要正确的 UniqueIdentifier 字段而不是字符串字段。我还没有建立我的数据库,所以这是确保 Identity 创建 UniqueIdentifier 主键字段而不是 nvarchar(128) 字段的最佳时机。
-
我是说这些说明导致 Identity 2.2.1 几乎在每个部分都将项目涂成红色。至少控制器是意料之中的——他们正在处理字符串并且突然遇到 Guids。但是,当我的
ApplicationDbContext()通过throwIfV1Schema以及我的GenerateUserIdentityAsync通过manager绘制时,该示例没有涵盖更深层次的问题。 -
明白。我会删除建议。
-
重新“使用字符串的控制器突然遇到 Guids”。您必须修复控制器才能使用 Guid。您为 2.0.0-alpha 链接的示例大多是正确的。当前发布的 Identity 并没有太大的不同。
-
你看过这个指南吗? asp.net/identity/overview/extensibility/… 将 id 转换为
int但原理是一样的。
标签: asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity asp.net-identity-2