ASP.NET 5 beta6 + app中的IdentityUserClaim实例化和类型转换错误

时间:2015-10-22 20:01:23

标签: c# asp.net-core asp.net-core-mvc

问题说明

我最近将我的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

请接受我的说法,我有一个用于制作自定义声明的用例。感谢您的时间,耐心和考虑。

1 个答案:

答案 0 :(得分:1)

过去有一个非通用的IdentityUserClaim类,它使用string作为TKey的类型参数:

public class IdentityUserClaim : IdentityUserClaim<string> { }

此类(以及其他几个),但{4}在beta7中。如果您愿意,可以将该类重新添加到您自己的代码库中,或者只使用IdentityUserClaim<string>