我正在设置我的第一个.NET Core应用程序。我将使用Dapper(1.50.0-rc2)获取ORM。
我已将以下内容添加到 appsettings.json 文件中。
"Data": {
"DefaultConnection": {
"ConnectionString": "user id=exampleusername;password=examplepassword;Data Source=db.example.com;Database=exampledb;"
}
},
我对如何获取 ConnectionString 的值感到困惑。由于.NET Core是如此新颖,在线示例已经到处都是,似乎没有一个真正涵盖这一点。
答案 0 :(得分:5)
我在GitHub repository
上有一个用于.NET核心的示例控制台应用程序设置阶段
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
构建阶段
Configuration = builder.Build();
使用阶段
Configuration.GetConnectionString("DefaultConnection")
您可以将此值用于Dapper
P.S。
您需要在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"
<强>已更新强>
具体解决方案
使配置静态属性和添加私人设置器
public static IConfigurationRoot Configuration { 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>
答案 1 :(得分:2)
我的演练:
在 appsettings.json 中添加 ConnectionStrings 部分:
"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;"
},
创建表示连接字符串部分的类:
public class ConnectionStringList
{
public string cs1 { get; set; }
public string cs2 { get; set; }
public string cs3 { get; set; }
}
打开 Startup.cs 并将上述配置类添加到ConfigureServices中的services集合中:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddOptions();
services.Configure<ConnectionStringList>(Configuration.GetSection("ConnectionStrings"));
}
将 IOptions&lt; ConnectionStringList&gt; 注入您的控制器/服务等,并从值属性中检索您的连接字符串值:
public SampleController(IOptions<ConnectionStringList> connectionStrings)
{
string cs1 = connectionStrings.Value.cs1;
...