更改用户密钥

时间:2014-11-20 15:41:37

标签: c# asp.net entity-framework

我目前正在使用一个用ASP.NET和C#开发的网站。我正在使用EF6,需要将默认表更改为我自己的自定义表。我设法解决了一个问题。在我的自定义表格中,UserIdint而不是默认nvarchar(128)。我正在关注 demo ,但我在第一行遇到错误。

public class ApplicationUser : IdentityUser<int, CustomLogin>
{
}

错误是:“非泛型类型Microsoft.AspNet.Identity.EntityFramework.IdentityUser ”不能与类型参数一起使用。

我做了一些研究,发现了这个 post 。我已经更新了所有核心库,但错误仍然存​​在。有没有其他人遇到过这个问题,或者我是幸运者?在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

ASP.NET附带了两个IdentityUser类。一个被宣布为:

public class IdentityUser : IdentityUser<string, 
        IdentityUserLogin, 
        IdentityUserRole, 
        IdentityUserClaim>, IUser

另一个是:

public class IdentityUser<TKey, TLogin, TRole, TClaim> : IUser<TKey>
        where TLogin : IdentityUserLogin<TKey>
        where TRole : IdentityUserRole<TKey>
        where TClaim : IdentityUserClaim<TKey>

您将声明一般类型类的​​子类型,并且在声明中将需要所有四种泛型类型。而且您还需要继承IdentityUserRole<int>IdentityUserClaim<int>以及CustomLogin类的类,我认为这是IdentityUserLogin<int>的派生。

将您的命名约定归结为

public class ApplicationUser : IdentityUser<int, CustomLogin, CustomRole, CustomClaim>