我目前正在使用一个用ASP.NET和C#开发的网站。我正在使用EF6,需要将默认表更改为我自己的自定义表。我设法解决了一个问题。在我的自定义表格中,UserId
是int
而不是默认nvarchar(128)
。我正在关注 demo ,但我在第一行遇到错误。
public class ApplicationUser : IdentityUser<int, CustomLogin>
{
}
错误是:“非泛型类型Microsoft.AspNet.Identity.EntityFramework.IdentityUser ”不能与类型参数一起使用。
我做了一些研究,发现了这个 post 。我已经更新了所有核心库,但错误仍然存在。有没有其他人遇到过这个问题,或者我是幸运者?在此先感谢您的帮助
答案 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>