次のクラスとメソッドがあります:
public class UserManager<TUser, TKey> : IDisposable
where TUser : class, global::Microsoft.AspNet.Identity.IUser<TKey>
where TKey : global::System.IEquatable<TKey> {
public virtual Task<TUser> FindByIdAsync(TKey userId);
そして:
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
set
{
_userManager = value;
}
}
public class ApplicationUserManager : UserManager<ApplicationUser, int>
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim>
このメソッドを次のように呼び出そうとしています:
var user = await UserManager.FindByIdAsync<ApplicationUser,int>(99);
次のエラーが発生します:
非ジェネリックメソッド
'Microsoft.AspNet.Identity.UserManager.FindByIdAsync(int)' は型引数では使用できません
ベストアンサー1
エラーが示すように、FindByIdAsync
型パラメータは取りません。これらは宣言クラスに存在します。UserManager<TUser, TKey>
var user = await UserManager.FindByIdAsync(99);