gpt4 book ai didi

int - 身份将 GUID 更改为 int

转载 作者:行者123 更新时间:2023-12-03 21:30:03 25 4
gpt4 key购买 nike

如何更改AspNetUser的PK列来自 guid 的表格至int数据类型?
现在应该可以使用最新的 asp.net-identity今天发布的版本。

但是我在任何地方都找不到这是如何完成的?

最佳答案

默认情况下,ASP.NET 标识(使用 Entity Framework )使用字符串作为主键,而不是 GUID,但它确实将 GUID 存储在这些字符串中。

您需要再定义几个类,我刚刚创建了一个新项目(我使用的是 VS2013 Update 2 CTP),以下是您需要更改的身份模型:

public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(ApplicationUserManager manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}

public class ApplicationUserRole : IdentityUserRole<int>
{
}

public class ApplicationUserLogin : IdentityUserLogin<int>
{
}

public class ApplicationUserClaim : IdentityUserClaim<int>
{
}

public class ApplicationRole : IdentityRole<int, ApplicationUserRole>
{
}

public class ApplicatonUserStore :
UserStore<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicatonUserStore(ApplicationDbContext context)
: base(context)
{
}
}

public class ApplicationDbContext
: IdentityDbContext<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}

您还需要更新其他一些地方,只需遵循编译错误,最常见的更改是需要转换返回形式 User.Identity.GetUserId() 的字符串为整数。

另外,在回答 another question (虽然我确实问了这个问题),我提供了一个示例解决方案,请参阅下面的存储库:

https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant

关于int - 身份将 GUID 更改为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547712/

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