📜  openiddect ef 核心表未创建 - C# (1)

📅  最后修改于: 2023-12-03 15:03:22.947000             🧑  作者: Mango

解决 OpenID Connect EF 核心表未创建

如果你在使用 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

在您的项目的根目录执行以下命令以添加实体框架核心 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 了。

祝编码愉快!