如何从ASP.NET中的appsettings.json中检索连接字符串

时间:2018-11-23 09:32:08

标签: c# asp.net connection-string appsettings

我尝试了两种单独的方法来尝试检索存储在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中的连接字符串

0 个答案:

没有答案