📅  最后修改于: 2023-12-03 15:03:22.947000             🧑  作者: Mango
如果你在使用 OpenID Connect EF Core (IdentityServer4.EntityFramework) 时遇到了以下错误:
There are no usable auth services configured.
则可能是因为该库的核心表没有在数据库中创建。
以下是解决此问题的步骤。
在您的项目的 csproj
文件中确保添加了以下实体框架核心依赖项:
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0" />
</ItemGroup>
请注意,您需要根据您实际使用的数据库管理系统来替换上述 Microsoft.EntityFrameworkCore.SqlServer
依赖项。
在您的项目的根目录执行以下命令以添加实体框架核心 Migrations:
dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration --context PersistedGrantDbContext
dotnet ef migrations add InitialIdentityServerConfigurationDbMigration --context ConfigurationDbContext
请注意,本示例中使用的是 SqlServer 数据库,如果您使用的是其他数据库,您需要在上述命令中替换对应的数据库上下文名称。
在您的项目的根目录执行以下命令以更新数据库:
dotnet ef database update --context PersistedGrantDbContext
dotnet ef database update --context ConfigurationDbContext
完成以上步骤后,核心表就会被创建在数据库中,您就可以正常使用 OpenID Connect EF Core 了。
祝编码愉快!