简体   繁体   中英

'No connection string named 'MyEntities' could be found in the application config file.'

I have a solution which has two projects, a .NET Web API and a .NET class library. I have used ADO.NET Entity Framework to generate the.edmx for my class library project.

I have also referenced the class library project and entity framework in my web API, so I have no issue referencing the correct models etc. (when creating a controller). I have also ensured that entity framework is installed for both the Web API and the Class Library (using Nuget package manager).

However, I have a simple controller that should return all of the records in a specified table. However, whenever this controller is called, I receive the following error:

'No connection string named 'VWRoodepoortEntities' could be found in the application config file.'

At first, my Web API had no .config file, so I added a web.config template and added the necessary connection string (the same connection string found within the app.config of the class library). My web.config now looks like this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <connectionStrings>
        <add name="VWRoodepoortEntities" connectionString="metadata=res://*/VWRoodepoortModel.csdl|res://*/VWRoodepoortModel.ssdl|res://*/VWRoodepoortModel.msl;provider=System.Data.SqlClient;provider connection string='data source=.;initial catalog=VWRoodepoort;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework';" providerName="System.Data.EntityClient" />
    </connectionStrings>
</configuration>

However, despite adding the connection string in the application config file (as requested by the error), I still get the exact same error. I then set the Web API as my startup project, However, I still get the same error. Is there something wrong with my connection string? Any help is appreciated.

EDIT:

I have also added my connection string to my appsettings.json file in my Web API. This file now looks as follows:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "VWRoodepoortEntities": "metadata=res://*/VWRoodepoortModel.csdl|res://*/VWRoodepoortModel.ssdl|res://*/VWRoodepoortModel.msl;provider=System.Data.SqlClient;provider connection string='data source=.;initial catalog=VWRoodepoort;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;"
  }
}

check in your web.config the name of the connection string must be with "My Entities."

// Try this.
1)string apiURL = ConfigurationManager.AppSettings["MyEntities"].ToString();
2)public static string ConnectionString = string.Empty;
ConnectionString = ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString;

// App.config -- Change connection name from "VWRoodepoortEntities" to "MyEntities".

<connectionStrings> <add name="MyEntities" connectionString="server=servername;port=3306;database=my_database;uid=root;password=*****;SslMode=none" /> </connectionStrings>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM