如何访问模型中的connectionString?我正在使用Dapper。我发现的大多数解决方案都使用的是EntityFramework而不是Dapper。
这正在我的本地计算机( macOS ):
echo ""
但是它在Linux Debian上不起作用。
运行应用程序后,public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
Dapper.DapperHelper.ConnectionString = Configuration["ConnectionStrings:MyConnectionString"];
}
属性在linux上为null。
我的appsettings.json文件内容:
Dapper.DapperHelper.ConnectionString
困扰我的是,相同的代码在macOS上运行但在Debian(linux)上不起作用。
答案 0 :(得分:0)
在我的Program.cs文件中,我不得不替换它:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://localhost:8888")
.Build();
}
用这个:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
})
.UseStartup<Startup>()
.UseUrls("http://localhost:8888")
.Build();
}
与:
相同public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
})
.UseStartup<Startup>()
.UseUrls("http://localhost:8888")
.Build();
}
使用声明的清单:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
然后它适用于Debian Linux以及macOS。
这帮我解决了问题:https://joonasw.net/view/aspnet-core-2-configuration-changes
但这一部分:
WebHost.CreateDefaultBuilder ASP.NET Core 2.0提供了很好的功能 用于创建非常典型配置的便捷方法 应用
而不是写这个:
...
你可以写:
...
对于Debian Linux来说不是这样。这仅适用于macOS。尚未在Windows上测试过。