2015-11-02 54 views
1

我從數據庫中添加了一個新的ADO.NET數據模型,並且一切都很好地生成了。實體框架拋出無效操作異常 - 未找到app.config中的連接字符串

然後我試着撥打電話,以獲得一個表:

public Sensor[] GetAllRegisteredSensors() 
     { 
      using (var context = new ClientSensorLocationEntities()) 
      { 
       try 
       { 
        return context.Sensors.ToArray(); 

       } 
       catch (Exception ex) 
       { 
        throw; 
       } 
      } 
     } 

,我得到一個異常:

沒有名爲「ClientSensorLocationEntities」連接字符串可能是 在發現應用配置文件。

不言自明,然後我去了我的app.config文件,該文件是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="ClientSensorLocationEntities" connectionString="metadata=res://*/ClientSensorLocationModel.csdl|res://*/ClientSensorLocationModel.ssdl|res://*/ClientSensorLocationModel.msl; 
       provider=System.Data.SqlClient;provider connection string=&quot;data source=MYUSER\SQLEXPRESS;initial catalog=ClientSensorLocation;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
       providerName="System.Data.EntityClient" /> 
       </connectionStrings> 
       <startup> 
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" /> 
      </startup> 
     </configuration> 

因此,與該名稱的連接字符串存在。什麼似乎是問題呢?

+1

據我所知,如果您是通過引用類庫或項目實例化dbcontext,則可能還需要在其配置文件中註冊連接字符串。例如,如果您正在Web項目中實例化它,請檢查連接字符串是否在web.config中 – Hendry

+0

是的就是這樣。我的WPF項目實例化了一箇中間層項目的類,然後用另一個項目中提供的代碼引用該類。我不得不將連接字符串添加到鏈中的所有項目以使其工作。謹慎提供答案,以便我可以接受它? – Mefhisto1

+0

這應該沒問題......你的連接字符串確實包含'"',應該用引號替換......可能是這樣嗎? – Heberda

回答

2

如果您使用DbContext來引用Projects,那麼還需要在項目配置文件中註冊連接字符串。

例如,如果您在Web項目上使用DbContext,請檢查連接字符串是否位於web.config上。

+0

你在現場,連接字符串應該出現在類庫的app.config和Web項目的web.config中。 – Heberda

相關問題