【问题标题】:'ConfigurationStoreOptions' does not contain a definition for 'UseSqlServer'“ConfigurationStoreOptions”不包含“UseSqlServer”的定义
【发布时间】:2020-05-02 17:20:16
【问题描述】:

我收到以下错误消息:

error CS1929: 'ConfigurationStoreOptions' does not contain a definition for 'UseSqlServer' and the best extension method overload 'SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder, string, Action<SqlServerDbContextOptionsBuilder>)' requires a receiver of type 'DbContextOptionsBuilder'
error CS1929: 'OperationalStoreOptions' does not contain a definition for 'UseSqlServer' and the best extension method overload 'SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder, string, Action<SqlServerDbContextOptionsBuilder>)' requires a receiver of type 'DbContextOptionsBuilder'

首先,问题不是因为我没有Microsoft.EntityFrameworkCore.SqlServer,我有。

错误出现在 AddConfigurationStore 和 AddOperationalStore 下面的代码中。它基本上无法识别 UseSqlServer。就像我说的,问题不是因为我没有 Microsoft.EntityFrameworkCore.SqlServer。

代码:

services.AddIdentityServer(options =>
{
    options.UserInteraction.LoginUrl = "/Login";
    options.UserInteraction.LogoutUrl = "/Logout";
})
    .AddSigningCredential(new X509Certificate2(Configuration["Certificates:Default:Path"], Configuration["Certificates:Default:Password"]))
    .AddConfigurationStore(options =>
        options.UseSqlServer(Configuration["ConnectionStrings:Dayum"],
            optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)))
    .AddOperationalStore(options =>
        options.UseSqlServer(Configuration["ConnectionStrings:Dayum"],
            optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)))
    .AddAspNetIdentity<ApplicationUser>();

以下工作正常:

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(Configuration["ConnectionStrings:Dayum"],
        optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));

我的 NuGet 包:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="IdentityServer4" Version="3.1.3" />
    <PackageReference Include="IdentityServer4.AspNetIdentity" Version="3.1.3" />
    <PackageReference Include="IdentityServer4.EntityFramework" Version="3.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.3">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Certs\" />
  </ItemGroup>

</Project>

【问题讨论】:

    标签: c# asp.net-identity identityserver4 asp.net-core-3.1


    【解决方案1】:

    我自己从scaffolded project 找到了答案。显然,UseSqlServer 现在在 ConfigureDbContext 下。

    dotnet new is4ef
    
    services.AddIdentityServer()
        .AddSigningCredential(new X509Certificate2(Configuration["Certificates:Default:Path"], Configuration["Certificates:Default:Password"]))
        .AddAspNetIdentity<ApplicationUser>()
        .AddConfigurationStore(options =>
        {
            options.ConfigureDbContext = builder => builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
                    optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName));
        })
        .AddOperationalStore(options =>
        {
            options.ConfigureDbContext = builder => builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
                    optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName));
        });
    

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 2017-03-13
      • 2021-08-03
      • 2022-11-30
      • 2021-12-17
      • 2019-03-01
      • 2017-08-05
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多