我尝试了两种单独的方法来尝试检索存储在appsettings.json
中的连接字符串,但是它们似乎都不起作用。第一种更简单的方法如下。
在我的appsettings.json文件中,我有以下内容(详细信息已删除):
"ConnectionStrings": {
"DatabaseConnection": "Server=server;Database=database;Trusted_Connection=True;"
}
然后在我想使用以下内容的类中检索字符串
string Conn = ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString;
但是,当我尝试运行此命令时,Conn
变量为null,并且不包含任何字符串。因此出于某种原因,找不到appsettings.json文件。
我尝试使用DbContext
的第二种方法。在appsettings.json中使用相同的连接字符串,我得到了以下内容:
Startup.cs中的ConfigureServices
services.AddDbContext<SourceContext>(options => options.UseSqlServer(Configuration.GetConnectionString("prsq02Connection")));
SourceContext
public class SourceContext : DbContext
{
public SourceContext(DbContextOptions<SourceContext> options)
: base(options)
{
}
}
SourceDataDAO
public class SourceDataDao : ISourceDataDao
{
private readonly SourceContext _context;
public SourceDataDao(SourceContext context)
{
_context = context;
}
private IDbConnection CreateConnection()
{
string conn = _context.Database.Connection.ConnectionString //This gives a compiler error and says that there is no definition for Connection
var connection = new SqlConnection(Conn);
return connection;
}
}
但是,由于_context.Database.Connection
字段显然未定义,因此该方法也不起作用。
该如何解决此错误,才能访问我的appsettings.json中的连接字符串