gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:12:59 28 4
gpt4 key购买 nike

当前项目:

  • 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com