Asp.net core .Net核心短节连接字符串?

Asp.net core .Net核心短节连接字符串?,asp.net-core,asp.net-core-mvc,Asp.net Core,Asp.net Core Mvc,我正在设置我的第一个.NET核心应用程序。我将使用Dapper(1.50.0-rc2)来实现ORM 我已将以下内容添加到appsettings.json文件中 我对如何获取ConnectionString的值感到困惑。由于.NET Core是如此之新,网上的例子到处都是,似乎没有一个能真正涵盖这一点。我的GitHub上有一个用于.NET Core的示例控制台应用程序 设置阶段 var builder = new ConfigurationBuilder() .Se

我正在设置我的第一个.NET核心应用程序。我将使用Dapper(1.50.0-rc2)来实现ORM

我已将以下内容添加到appsettings.json文件中


我对如何获取ConnectionString的值感到困惑。由于.NET Core是如此之新,网上的例子到处都是,似乎没有一个能真正涵盖这一点。

我的GitHub上有一个用于.NET Core的示例控制台应用程序

设置阶段

var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
构建阶段

Configuration=builder.Build()

使用阶段

Configuration.GetConnectionString(“DefaultConnection”)

您可以将此值用于
Dapper

附言

您需要在
project.json中添加3个依赖项

"Microsoft.Extensions.Configuration": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final"
已更新

特定溶液

使配置为静态属性并添加私有setter

公共静态IConfigurationRoot配置{get;private set;}

换分机

namespace GamesCore.Extensions 
{
    public class ScoreExtensions 
    { 
        private static string dataConnectionString = Startup.Configuration.GetConnectionString("DefaultConnection"); 
    } 
}
对于.NET Core 2.0,一切都是一样的,只更改了项目文件,因此您需要使用以下软件包:

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.2" />
    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.2" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.2" />
  </ItemGroup>

我的演练:

  • 在appsettings.json中添加连接字符串部分:

    “连接字符串”:{
    “cs1”:“服务器=xxxx;端口=xxxx;数据库=xxxx;用户Id=xxxx;密码=xxxx;池=false;”,
    “cs2”:“服务器=xxxx;端口=xxxx;数据库=xxxx;用户Id=xxxx;密码=xxxx;池=false;”,
    cs3:“服务器=xxxx;端口=xxxx;数据库=xxxx;用户Id=xxxx;密码=xxxx;池=false;”
    },
    
  • 创建表示连接字符串部分的类:

    公共类连接字符串
    {
    公共字符串cs1{get;set;}
    公共字符串cs2{get;set;}
    公共字符串cs3{get;set;}
    }
    
  • 打开Startup.cs并将上述配置类添加到ConfigureServices中的服务集合:

    public void配置服务(IServiceCollection服务)
    {
    ...
    services.AddOptions();
    Configure(Configuration.GetSection(“connectionString”);
    }
    
  • IOptions注入控制器/服务等,并从value属性检索连接字符串值:

    公共采样控制器(IOOptions连接字符串)
    {
    字符串cs1=ConnectionString.Value.cs1;
    ...
    

  • 我在Startup.cs的Startup方法中有“Setup phase”和“Build phase”(它们已经从Visual Studio模板中存在)。我将缺少的依赖项添加到了我的project.json中。但是在“Use phase”上我得到“名称”配置“在当前上下文中不存在”我尝试使用Microsoft.Extensions.Configuration添加,但结果是“类型或命名空间名称”GetConnectionString“不存在”错误。抱歉,按enter键太快。请参阅上面更新的注释。@eat sleep code您在哪里尝试使用
    Confi配置
    ?在一个扩展类中;
    命名空间GamesCore.Extensions{public class ScoreExtensions{private static string dataConnectionString=Configuration.GetConnectionString(“DefaultConnection”);}
    @niico为.net core 2添加了包
      <ItemGroup>
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.2" />
        <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.2" />
        <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.2" />
      </ItemGroup>