无法解析符号 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 文件中的一些命名空间:
使用 Microsoft.EntityFrameworkCore;
使用 Microsoft.Extensions.Configuration;
第二:在Startup.cs文件中写入这些代码:
正在创建属性:
public IConfiguration Configuration { get; set; }
还有这之后的属性:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
我有一个 .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 文件中的一些命名空间:
使用 Microsoft.EntityFrameworkCore;
使用 Microsoft.Extensions.Configuration;
第二:在Startup.cs文件中写入这些代码:
正在创建属性:
public IConfiguration Configuration { get; set; }
还有这之后的属性:
public Startup(IConfiguration configuration) { Configuration = configuration; }