2014-06-12 60 views
2

沒有對這裏的職位似乎已解決我的錯誤的特定版本,但我可能只是失去了一些東西......沒有實體框架提供發現......有固定名稱「System.Data.SqlClient的」

風雲作弊:

MVC網站使用WCF服務。數據保存在WCF服務中。兩者都運行

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

兩者都有連接字符串:

<add name="SiteTrackerEntities" connectionString="metadata=res://*/VisitorInformation.csdl|res://*/VisitorInformation.ssdl|res://*/VisitorInformation.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=BADLANDS\;initial catalog=SiteTracker;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

站點運行,直到我真正嘗試保存到使用(在第二行錯誤)在WCF服務的數據庫...

SiteTrackerEntities db = new SiteTrackerEntities(); 
db.Entry(visitorData).State = System.Data.Entity.EntityState.Added; 

然後我得到這個可愛的錯誤:

VisitorInformation.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. 
  • 確保兩者都使用相同版本的EF(6.0)。檢查。
  • 試圖在連接字符串中輸入提供者名稱,但已經使用providerName="System.Data.EntityClient"
  • 嘗試使用PM控制檯刪除並重新安裝EF。檢查。
  • 手動刪除Ef引用並閱讀它們。檢查。
  • WCF服務引用Entity.Framework.SqlServer(版本6.0.0.0)。檢查。
  • MVC應用程序具有僅用於WCF服務的數據庫的連接字符串(奇怪的是它需要它但沒關係)。檢查。

我錯過了什麼?

+0

您是否在WCF項目上通過NuGet安裝EF6? – tranceporter

+0

多項目解決方案。在PM控制檯中運行它將它添加到兩個項目中,同時修改了兩個.config文件以同步到同一版本。 Moo指出我正確的方向。 – MetalPhoenix

回答

7

確保在Web.config或App.config中有類似於以下內容的內容。

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
    <provider invariantName="System.Data.SqlClient"   type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
</entityFramework> 
+0

這樣做。它已經在應用程序配置中,但不是web配置。它不再在該行上發生錯誤,但現在正在討論沒有插入函數存在或一些廢話。你會得到答案和投票!謝謝 – MetalPhoenix

+1

問題:即使WCF服務是訪問數據庫的人,爲什麼MVC項目需要web.config中的數據信息? – MetalPhoenix

+1

這是因爲.net默認使用調用應用程序的配置文件。在大多數情況下,它是主要的Web/Windows應用程序。 – tranceporter

相關問題