7

我已将默认 MVC5 模板修改为使用s/ s,而不是使用string/ nvarchar-keyed 用户。我的解决方案类似于此处讨论的解决方案:http: //blogs.msdn.com/b/webdev/archive/2013/12/20/announcing-preview-of-microsoft-aspnet-identity-2-0-0- alpha1.aspxGuiduniqueidentifier

我在适用的情况下更改了类型参数,但我的第一个用户生成的 id 为 00000000-0000-0000-0000-000000000000。无法创建第二个用户,因为它的主键与第一个用户的主键冲突。

然后我将适用的类型参数从 更改Guidint,然后它工作了,用户 ID 从 1 开始并递增。

那么我该如何使用它Guid呢?

我只需要挂在某个地方并为每个新创建的用户分配一个新的 Guid。最好的地方在哪里?我想也许在 ApplicationUser (implements IdentityUser<Guid, ...>) 构造函数中,但我不确定。

4

1 回答 1

7

我发现 Tieson T 的评论代表了正确的答案,但它是作为评论发布的,而不是答案,所以我将在这里重现我的具体解决方案。在我的ApplicationUser类(实现IdentityUser)中,我覆盖了Id属性并添加了System.ComponentModel.DataAnnotations.KeyAttributeandSystem.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOptionAttribute属性。因此,我的 applicationUser 类如下所示:

public class ApplicationUser : IdentityUser<Guid, CustomUserLogin, CustomUserRole, CustomUserClaim>
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public override Guid Id
    {
        get { return base.Id; }
        set { base.Id = value; }
    }
    ...
}
于 2014-06-15T18:41:51.923 回答