我需要 Identity 中用户类的主键很长,而不是默认字符串。按照此 MS 教程进行操作。所以我做了所有这些(只是将教程中的 GUID 替换为 long(,一切看起来都很好,直到我正在创建一个种子类
var userStore = new UserStore<ApplicationUser>(context);
给我应用程序用户上的波浪线,并显示消息:
错误 CS0311 类型"WSCPA_AC。Models.ApplicationUser' 不能用作泛型类型或方法 'UserStore' 中的类型参数 'TUser'。没有从 'WSCPA_AC 隐式引用转换。Models.ApplicationUser' to 'Microsoft.AspNetCore.Identity.IdentityUser'.
现在我在教程底部的评论中看到提到了此类问题。我是否必须以某种方式重写 UserStore 类,如果是,如何重写?
我认为您需要使用UserStore
的基类,其签名为UserStore<TUser, TRole, TContext, TKey>
,如下所示:
var userStore = new UserStore<ApplicationUser, IdentityRole<long>, TContext, long>(context);
其中TContext
是数据库上下文的类型。