Как использовать PersistedGrantDbContext для выбора PersistedGrant - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу получить такие данные:

var persistedGrants = await _PersistedGrantDbContext.PersistedGrants.ToListAsync();

Это моя конфигурация:

services.AddDbContext<AccountDbContext>(options =>
                        options.UseSqlServer(connectionString,
                            sql => sql.MigrationsAssembly(migrationsAssembly)))
                    .AddDbContext<PersistedGrantDbContext>(options =>
                        options.UseSqlServer(connectionString,
                            sql => sql.MigrationsAssembly(migrationsAssembly)));

Но у меня есть ошибка:

An Произошло необработанное исключение при обработке запроса. InvalidOperationException: невозможно разрешить службу для типа 'IdentityServer4.EntityFramework.Options.OperationalStoreOptions' при попытке активировать 'IdentityServer4.EntityFramework.DbContexts.PersistedGrantDbContext'.

Что следует исправить?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Нет необходимости вызывать базу данных напрямую, вместо этого используйте предоставленные хранилища.

В этом случае вы можете использовать IPersistedGrantStore :

public class MyClass
{
    private readonly IPersistedGrantStore _store;

    public MyClass(IPersistedGrantStore store)
    {
        _store = store;
    }

    public async Task Something(string sub)
    {
        var persistedGrants = await _store.GetAllAsync(sub);
    }

}
0 голосов
/ 05 февраля 2020

Да, я решил свою проблему. Мне не хватало services.AddIdentityServer().AddOperationalStore

...