无法解析符号 GetConnectionstring

Cannot resolve symbol GetConnectionstring

我有一个 .NET Core 3.0 class 库。这是我第一次使用 .NET Core

我想连接到数据库。

https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings 确切地 展示了如何操作。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.configuration.configurationextensions.getconnectionstring?view=dotnet-plat-ext-3.1 显示 Microsoft.Extensions.Configuration 命名空间中存在的方法

我无法访问它。

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;  //no underlines and imported via Nuget

namespace Core.Cms.DAL
{
    public class Entities : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {  optionsBuilder.UseSqlServer(Microsoft.Extensions.Configuration.GetConnectionString(ConnectionString.SqlServerExpress));

        }
    }
}

截图

为什么我没有可用的 Microsoft.Extensions.Configuration.GetConnectionString() 方法?

编辑

重启骑手 - 同样的问题

Entities.cs(17, 45): [CS0234] The type or namespace name 'GetConnectionString' does not exist in the namespace 'Microsoft.Extensions.Configuration' (are you missing an assembly reference?)

您应该使用 IConfiguration 界面。您可以像这样

访问配置表单 DI
private readonly IConfiguration _configuration;
public Entities(IConfiguration configuration)
{
    _configuration = configuration
}

然后使用 _configuration.GetConnectionString(ConnectionString.SqlServerExpress) 而不是 Microsoft.Extensions.Configuration.GetConnectionString()

optionsBuilder.UseSqlServer(_configuration.GetConnectionString(ConnectionString.SqlServerExpress));

如果您正在使用 Asp.Net 核心 Web 应用程序,这是在 startup class

中配置 DbContext 的更好方法
public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}
public IConfiguration Configuration { get; set; }
services.AddDbContext<Entities>(options =>
{
    options.UseSqlServer(Configuration.GetConnectionString(ConnectionString.SqlServerExpress));
});

更新

如果您不使用 DI,您可以手动访问 IConfiguration

首先你必须安装这个包

  • Microsoft.Extensions.Configuration.Json

  • Microsoft.Extensions.Configuration.FileExtensions

然后构建 IConfiguration

IConfiguration configuration = new ConfigurationBuilder()
   .AddJsonFile("appsettings.json", true,true)
   .Build();
optionsBuilder.UseSqlServer(configuration.GetConnectionString(ConnectionString.SqlServerExpress));

  • 首先:使用 startup.cs 文件中的一些命名空间:

    1. 使用 Microsoft.EntityFrameworkCore;

    2. 使用 Microsoft.Extensions.Configuration;

  • 第二:在Startup.cs文件中写入这些代码:

    1. 正在创建属性:

      public IConfiguration Configuration { get; set; }
      
    2. 还有这之后的属性:

      public Startup(IConfiguration configuration)
      {
          Configuration = configuration;
      }