问题说明
我最近将我的ASP.NET 5应用程序从beta 6升级到beta 8.我遇到了几个问题,但是这个问题让我感到困惑。我遇到以下错误:
Using the generic type IdentityUserClaim<TKey>' requires 1 type argument SampleProject.DNX 4.5.1
代码
IdentityUserClaim<string> IdentityUserClaimString = await applicationDbContext.UserClaims.SingleAsync(c => c.Id == claimId);
IdentityUserClaim identityUserClaim = new IdentityUserClaim();
identityUserClaim.Id = IdentityUserClaimString.Id;
identityUserClaim.ClaimType = IdentityUserClaimString.ClaimType;
identityUserClaim.ClaimValue = IdentityUserClaimString.ClaimValue;
identityUserClaim.UserId = IdentityUserClaimString.UserId;
return (identityUserClaim);
尝试
我尝试制作一个泛型类,但作为一项规则,我尽量不重写基础包,甚至扩展给我们的包。
据我了解错误,它希望我将IdentitUserClaim
更改为IdentityUserClaim<int>
之类的内容。但是,这不是我理解这个库或在ASP.NET5中使用它直到beta6的方式。我一直在使用它。
所以我的问题是,有什么方法可以解决这个问题,而不必彻底重写我的代码,或者我将不得不重写我的自定义身份声明,因为我不知道的代码规则有一些变化或执行beta6 +包Microsoft.AspNet.Identity.EntityFramework
?
请接受我的说法,我有一个用于制作自定义声明的用例。感谢您的时间,耐心和考虑。
答案 0 :(得分:1)
过去有一个非通用的IdentityUserClaim
类,它使用string
作为TKey
的类型参数:
public class IdentityUserClaim : IdentityUserClaim<string> { }
此类(以及其他几个),但{4}在beta7中。如果您愿意,可以将该类重新添加到您自己的代码库中,或者只使用IdentityUserClaim<string>
。