2013-06-20 120 views
4

首先,我發現很多問題和許多答案與我的問題相關或感知完全相同,但是似乎沒有任何東西可以解決我的問題。找不到實體框架數據提供者,實體客戶端

我有一個全新的模板MVC4網站,一個全新的數據庫在全新安裝的SQL Server 2008 R2。 我在數據庫上運行了aspnet_regsql並創建了所有表 我創建了在我的web.config中生成connectionstring的.edmx模型。

<connectionStrings> 
    <add name="TestEntities" connectionString="metadata=res://*/Models.Test.csdl|res://*/Models.Test.ssdl|res://*/Models.Test.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=WEBSRV\SQLEXPRESS;initial catalog=Test;persist security info=True;user id=Test;password=Test#1337;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

構建網站返回我的錯誤 Unable to find the requested .Net Framework Data Provider. It may not be installed.

沒有自我封閉<DbProviderFactories/>在我machine.config中 同樣的問題也發生閹我在本地運行的網站在Visual Studio的Web主機或我的網絡服務器的IIS。 我還沒有安裝任何NuGet軟件包

爲什麼我得到這個錯誤?

回答

8

對,我想出了這個問題。

您不能將該連接字符串用於除edmx連接之外的其他任何內容。 我在我的web.config中使用它的方式使得網站也使用同樣的連接字符串作爲會員資料,這與System.Data.EntityClient提供程序不兼容,在我的情況下需要System.Data.Sqlclient。添加第二個連接字符串,減去其中的實體框架內容,並通過web.config中的成員資格提供程序屬性引用它,可以刪除所有錯誤,並允許頁面從SQL服務器呈現和請求內容。

噩夢結束了,可以返回到我的網站上工作。 o/

+1

you'are權,需要進行簡單的會員 –

+2

一個額外的連接是否可以張貼一些(例如)代碼? – Odrai

+1

你可以顯示更新的connectionStrings嗎? – deathrace

3

這是連接字符串的錯誤類型。這是針對模型優先(EDMX)類型的連接。你需要一個代碼第一個連接字符串。嘗試使用標準連接字符串,如:

<connectionStrings> 
    <add name="MyDbContext" providerName="System.Data.SqlClient" connectionString="Data Source=(local);Initial Catalog=your_database;Integrated Security=True;Application Name=your_app_name" /> 
</connectionStrings> 
+1

非常感謝!當我試圖找出爲什麼我的自定義MembershipProvider不工作時(在MVC 4'WebSecurity'/authentication的上下文中),這個答案對我來說是一個巨大的幫助。 – alex

相關問題