#asp.net #asp.net-core
Вопрос:
Я пытаюсь обновить свой .Приложение Net core 2.2 для .net 5.0
Эта линия больше не работает:
services.AddIdentity<ApplicationUser, IdentityRole>
.AddEntityFrameworkStores<DataContext>()
.AddDefaultTokenProviders();
Я получил сообщение:
«IdentityBuilder» не содержит определения для «AddEntityFrameworkStores», и не удалось найти доступного метода расширения «AddEntityFrameworkStores», принимающего первый аргумент типа «IdentityBuilder»
Поэтому, основываясь на своих исследованиях, я попытался:
services.AddIdentity<ApplicationUser, IdentityRole>
.AddUserStore<DataContext>()
.AddDefaultTokenProviders();
Однако во время компиляции я получаю следующую ошибку во время выполнения:
Тип реализации » автоспорт.Модели.DataContext» не может быть преобразован в тип службы » Microsoft.AspNetCore.Идентичность.Магазин IUserStore`
Это мой DataContext:
public class DataContext : DbContext
{
public DataContext(DbContextOptions<DataContext> options) : base(options)
{ }
public virtual DbSet<ApplicationUser> ApplicationUsers { get; set; }
public virtual DbSet<RefreshToken> RefreshTokens { get; set; }
}
Что я делаю не так? Обратите внимание, что мое приложение предназначено только для API, я вообще не использую представления Razor.
Комментарии:
1. Магазины AddEntityFrameworkStores должны быть доступны в Microsoft. Расширения. Пространство имен DependencyInjection.
2. Вы установили
Microsoft.AspNetCore.Identity.EntityFrameworkCore
?3. В этом-то и была проблема! Спасибо
4. Здравствуйте,@Robbie Mills,я опубликовал это в качестве ответа,можете ли вы принять его? Спасибо.
Ответ №1:
Вам необходимо установить Microsoft.AspNetCore.Идентичность.EntityFrameworkCore, который предоставляет типы для сохранения идентификационных данных с ядром Entity Framework.
Потому что магазины AddEntityFrameworkStores были перемещены в отдельный пакет NuGet Microsoft.AspNetCore.Identity.EntityFrameworkCore
.