.Net CORE Dapper Connection String?

后端 未结 2 850
栀梦
栀梦 2021-01-13 19:03

I am setting up my first .NET Core application. I am going to user Dapper (1.50.0-rc2) for the ORM.

I have added the following to my appsettings.json file

相关标签:
2条回答
  • 2021-01-13 19:30

    I have a sample Console App for .NET core on my GitHub repository

    Setup phase

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

    Build phase

    Configuration = builder.Build();

    Use phase

    Configuration.GetConnectionString("DefaultConnection")

    You can use this value for Dapper

    P.S.

    You need to add 3 dependencies into your project.json

    "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"
    

    UPDATED

    Specific solution

    make Configuration static property and add private setter

    public static IConfigurationRoot Configuration { get; private set; }

    and change your extension

    namespace GamesCore.Extensions 
    {
        public class ScoreExtensions 
        { 
            private static string dataConnectionString = Startup.Configuration.GetConnectionString("DefaultConnection"); 
        } 
    }
    

    For .NET Core 2.0 everything is same and only project file is changed so you need to use following packages:

      <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>
    
    0 讨论(0)
  • 2021-01-13 19:45

    My walkthrough:

    1. Add ConnectionStrings section in appsettings.json:

      "ConnectionStrings": {
         "cs1": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;",
         "cs2": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;",
         "cs3": "Server=xxxx;Port=xxxx;Database=xxxx; User Id=xxxx;Password=xxxx;Pooling=false;"
      },
      
    2. Create class that represents the connection strings section:

      public class ConnectionStringList
      {
          public string cs1 { get; set; }
          public string cs2 { get; set; }
          public string cs3 { get; set; }
      }
      
    3. Open Startup.cs and add the above configuration class to the services collection in ConfigureServices:

      public void ConfigureServices(IServiceCollection services)
      {
          ...
          services.AddOptions();
          services.Configure<ConnectionStringList>(Configuration.GetSection("ConnectionStrings"));
      }
      
    4. Inject IOptions<ConnectionStringList> into your controller/service etc. and retreive your connection string value from Value property:

      public SampleController(IOptions<ConnectionStringList> connectionStrings)
      {
          string cs1 = connectionStrings.Value.cs1;
          ...
      
    0 讨论(0)
提交回复
热议问题