如何在模型中访问connectionString?

时间:2017-10-05 09:48:30

标签: sql-server-2008 asp.net-core debian connection-string dapper

如何访问模型中的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)上不起作用。

1 个答案:

答案 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上测试过。

我还将此报告为错误:https://github.com/dotnet/corefx/issues/24446