从IdentityUser继承我在UserManager <User>上收到错误

Van*_*nel 5 c# asp.net entity-framework asp.net-identity

我正在使用.NET Framework 4.5.1和Asp.Net Identity 2.1.0开发Web Api 2.2应用程序.

我不确定我在做什么,但我想将我的数据库与ASP.NET Identity数据库合并,我已经这样做了:

我自己的dbContext.

public class EFDbContext : IdentityDbContext, IUnitOfWork
Run Code Online (Sandbox Code Playgroud)

我自己的User课.

public class User : 
   IdentityUser<long,
                IdentityUserLogin<long>,
                IdentityUserRole<long>,
                IdentityUserClaim<long>
               >
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

UserManager<User> _userManager;

我收到此错误:

该类型Data.Models.User不能用作类型的参数TUser.没有任何显式转换Data.Models.UserMicrosoft.AspNet.Identity.IUser<string>.

因为我想有我这样做是IdentityUser.Idlong代替string.

我该如何解决这个错误?

UPDATE

用以下内容更新UserManager后:

UserManager<User, long> _userManager;
Run Code Online (Sandbox Code Playgroud)

我在这里得到三个错误:

EFDbContext_ctx = context as EFDbContext;
_userManager = new UserManager<User, long>(new UserStore<User>(_ctx));
Run Code Online (Sandbox Code Playgroud)
  1. "Microsoft.AspNet.Identity.UserManager.UserManager(Microsoft.AspNet.Identity.IUserStore)"方法重载的最佳匹配有一些无效的参数 -
  2. "Data.Models.User"类型不能用作"TUser"类型的参数或通用方法"Microsoft.AspNet.Identity.EntityFramework.UserStore".没有从'Data.Models.User'到'Microsoft.AspNet.Identity.EntityFramework.IdentityUser'的隐式引用的转换.
  3. 参数1:无法从"Microsoft.AspNet.Identity.EntityFramework.UserStore"转换为"Microsoft.AspNet.Identity.IUserStore"

我该如何解决这个新错误?

Jon*_*lis 5

使用其他UserManager

UserManager<User, long> _userManager;
Run Code Online (Sandbox Code Playgroud)

您正在使用此UserManager:

表示用户的主键为string类型的用户的用户管理器.