asp.net - MVC 身份 2.2.1 - 主键 (Guid) 作为 UniqueIdentifier 而不是 nVarChar(128)

标签 asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity asp.net-identity-2

当前项目:

  • ASP.NET 4.5.2
  • MVC 5
  • 身份 2.2.1

我遇到的问题之一是我在项目的其余部分正确使用 GUID,数据库字段类型是 UniqueIdentifier。不幸的是,Identity 不遵循相同的规则,并且出于某些难以理解的原因,他们将表字段创建为字符串 -- nVarChar(128)。

我发现了一些展示如何正确修改 Identity 以使用 UniqueIdentifier 并将 Guids 转换为正确格式的点击率,但是所有这些资源目前都已过时 - 大多数用于 pre-v2最近的一个是2.0.0-alpha ,并且它提供的代码与当前版本的 Identity 不匹配或无法正常工作。

我已经尽我最大的努力去谷歌那里的东西,但要么它不存在,要么我今天的谷歌功能很弱。我正在寻找有关如何将 DB 字段更改为 UniqueIdentifier(适合 Guid)的任何指示,同时仍然让其他一切正常工作/转换。

编辑: 似乎有人或系统已将这篇文章链接到另一篇文章,因为它可能与另一篇文章重复。问题是,我已经链接到另一篇文章作为 Identity 的 v1.x 用法,因此不直接适用。即使是我链接到的 2.0.0-alpha 代码也不起作用。即使链接文章底部的附加 Material 在 2.2.1 下也不起作用。

最佳答案

也许 this将帮助:

Entity Framework ——使用 Guid 作为主键

更新 因此,如果您将像这样使用 GUID:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }

EF 将在您的数据库表中生成 uniqueidentifier,但重要的是将列值设置为 (newsequentialid()) 并生成 StoreGeneratedPattern 身份。 所以这将自动生成下一个唯一 ID

using (ApplicationDbContext context = new ApplicationDbContext())
{
    var item = new Item
                 {
                     Name = "Random",
                     Description= "Person";
                 };

    context.Items.Add(item);
    context.SaveChanges();
    Console.WriteLine(item.Id);
}

Home 这会很有帮助。

关于asp.net - MVC 身份 2.2.1 - 主键 (Guid) 作为 UniqueIdentifier 而不是 nVarChar(128),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947192/

相关文章:

c# - 如何从页面访问文本框值到用户控件

Asp.net url路由捕获asmx web服务调用

asp.net-mvc - 在 ASP.NET MVC 中使用 3 个下拉列表(日/月/年)选择日期

c# - Windows Azure 上的 ASP.NET MVC 4 session 10 分钟后过期

azure - MVC5 Azure AD IDX21323

asp.net-mvc - 将 Glimpse 添加到引用 EF 项目的 MVC 项目的正确方法是什么?

javascript - 在页面的特定部分显示带有 id 的图像,但在页面的其他部分不显示

c# - ASP.NET MVC 5 表单验证

javascript - 使用 Ajax 将消息状态从未读更新为已读 - MVC

asp.net-mvc - MVC 5 在 web.config 中自定义 OWIN 身份验证选项