To Striter:
Легко пропустить обновление классов идентификаторов при создании подклассов.
Итак, идея такова:
1) Проверить базовые предложения вы будетепереопределить от удостоверения: ApplicationUser, ApplicationRole, (если вы изменяете его, не очень часто), ApplicationUserLogin, ApplicationClaims… и т. д. Обратите внимание, что мой пример взят из кода, который я использовал, где я изменил UserRoles, чтобы включить компанию, так что это немного сложнееобъявление.
Например, у вас может быть:
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{ // Code… }
Или (не проверено)
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, IdentityUserRole<int>, IdentityUserClaim<int>>
{ // Code… }
Затем замените их соответствующим во всех подпрограммах.В случае ShaneKm он, вероятно, оставил это без изменений в DbContext или UserStore:
public class ApplicationDbContext : IdentityDbContext<IdentityUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{ // Code … }
И исправил это так:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{ // Code … }
Для поиска отсутствующих замен, щелкните правой кнопкой мыши на «IdentityUser»"в общедоступном классе ApplicationUser: IdentityUser
2) Иногда вы компилируете, и не все вещи обновляются, поэтому старый объект все еще ссылается на уже измененный код.Бывает со мной часто с WCF.Вы должны очистить каталоги obj и bin (я их удаляю), чтобы все перекомпилировалось.
Надеюсь, это прояснится.