簡體   English   中英

在應用程序配置文件中找不到已命名的連接字符串

[英]No connection string named could be found in the application config file

我正在使用 EF 並從中生成 .EDMX,但后來我只希望它用於自動生成類文件。

然后我使用類文件創建了一個實體模型,然后創建了一個數據庫上下文,然后是存儲庫。 我正在調用一個 WebApi(它在一個單獨的項目中,但相同的解決方案)來訪問存儲庫以獲取數據。 當我運行 WebApi 時,出現錯誤,

{“在應用程序配置文件中找不到名為‘DBEntities’的連接字符串。”}

但是在我的 DAL 中,我有一個 webConfig 並且有以下條目,所以我不太確定出了什么問題,

add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" 

在 DBContext 文件中,刪除

public RaficaDB()
: base("name=DefaultConnection"){}

public RaficaDB()
: base("DefaultConnection"){}

EF 4.3、EF 5 和 EF 6 不喜歡名為 name=xxxxx 的連接字符串

此處找到答案 -> 在應用程序配置文件中找不到名為“MyApplicationEntities”的連接字符串

你說“在我的 DAL 中,我有一個 webConfig”。 我猜連接字符串在引用的類庫的配置文件中,但不在入口項目(一個 web api 項目,我猜是查看標簽)中的主配置文件中。

如果是這樣,只需復制入口項目配置文件中的連接字符串即可。

在 .edmx 文件所在的同一項目的 .config 文件的配置部分中插入以下部分。

您也可以在主項目的.config 文件中為不同的環境創建不同的連接字符串,並將任何連接字符串作為DBContext 構造函數的參數傳遞。

 <connectionStrings> <add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>

將項目設置為啟動項目對我有用

我發現這有效:

1) 檢查您是否有多個“App.config”文件。 2) 檢查是否有一個錯誤的名稱而不是它必須使用的連接字符串。 3) 保存工程並運行程序

它現在應該可以工作了。

將連接字符串復制並粘貼到您的 WEBAPI 項目 web.config 文件將解決該問題。

如果以上都沒有解決問題,那么您可能犯了我的錯誤,這是我的情況:我的解決方案中有多個項目,並且啟動項目與具有實體框架的項目不同,從包切換項目管理器控制台似乎是一個有問題的東西,尤其是在實體框架命令中,所以我在這里做了:

  1. 將你的webapi(或者項目有實體框架)設置為啟動項目。
  2. 重建解決方案並重試。
  3. 再次運行實體框架命令。

如果上述方法不起作用,請嘗試關閉解決方案並從步驟 2 開始嘗試,這應該可以解決問題。

最簡單的解決方案:

在 app.config 中刪除當前 edmx 文件和相關連接字符串,並再次添加與之前同名的 Edmx 項。

這對我有用。

這很愚蠢,但是我遇到了這個錯誤,該錯誤已通過Rebuild All修復!!
還不如把它關掉再打開……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM