从另一个项目访问asp net core应用程序连接字符串

时间:2017-03-09 19:14:26

标签: .net entity-framework asp.net-core connection-string class-library

我有一个ASP NET CORE项目,我有一个连接字符串,我的dbcontext在.net 4.52类库项目中。我想知道如何从asp net core项目访问连接字符串。

asp net core - appsettings.json:

"ConnectionStrings": {        
    "MyConnectionString": "Data Source=.\\mydb;Initial Catalog=mydb;User Id=myuser;Password=mypassword; MultipleActiveResultSets=true"
}, ...

我的dbContext

public MyContext() : base("name=MyConnectionString")
{
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
}

public MyContext(string connString) : base(connString)
{
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
}

当我运行应用程序时,我收到错误:在应用程序配置文件中找不到名为MyConnectionString的连接字符串。即使我将连接字符串部分添加到asp net core项目web.config文件中。

当我对连接字符串进行硬编码时,一切正常。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这给我带来了很多麻烦。这就是我解决它的方法:

Visual Studios问题

首先,我使用Visual Studios 2015和.Net Core的预发布版本(dnx或其他)创建了一个.NET Core网站。我一直在浏览我的appsettings.json文件并试图弄清楚如何修复它但无济于事。我所做的所有研究都表明,我使用的是.Net核心框架的旧版本,我需要进行升级。最后我厌倦了它并卸载了VS15并安装了VS17,所以我得到了最新的。

错误的项目类型

现在配备了VS17,我创建了一个全新的.Net Core Web应用程序并添加了我的IO类只是为了得到错误

"The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0."

我收到了这个错误,因为我试图在.Net Core网站上使用.Net框架OI类。我没有走那条路,而是决定创建一个 .Net框架ASP.Net核心网站。 (是的,有点混乱)

enter image description here

mscorlib的问题可能是fixed soon

同样的老问题

在我平了之后,重新添加了我的IO类,然后将我的连接字符串添加到appsettings.json,只是我遇到了完全相同的问题。

InvalidOperationException: No connection string named 'myConnectionString' could be found in the application config file.

在我把PC扔出窗外之前,我注意到这次有一个app.config文件和appsettings.json文件。

enter image description here

解决方案

在预感中,我从appsettings.json中取出了连接字符串,将其添加到了app.config 和Voila!有效!我不确定这是否适用于VS15中的旧DNX框架,但如果您仍然遇到此问题,我会尝试添加app.config。