找不到System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer

c# entity-framework-6

我正在從SqlConnection構造一個DbContext。當我使用它時,我收到以下錯誤:

“System.Data.SqlClient”ADO.NET提供程序的實體框架提供程序類型“System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”不能加載。

我正在使用6.0.0-alpha2-11210。

我發現這很奇怪,因為我有一個對Entity.SqlServer的引用,並且我設法通過在查詢之前放置以下代碼行來“修復它”:

var patch_only = System.Data.Entity.SqlServer.SqlProviderServices.Instance;

這是alpha版本的錯誤嗎?

一般承認的答案

我希望我不遲到。我正在使用ASP.NET MVC 4和Entity Framework 6 alpha 3並遇到了類似的問題。

我的解決方案中有多個項目。 2個主要項目是:

MyProject.Infrastructure.EntityFramework
MyProject.Web

在第一個項目中,我將設置所有的存儲庫, DbContext等。在這個項目中,我有2個引用:

MyProject.Infrastructure.EntityFramework
MyProject.Web

第二個項目是我的網站。它使用第一個項目中的存儲庫來返回我的數據。例如:

MyProject.Infrastructure.EntityFramework
MyProject.Web

這就是我遇到問題的地方,調用FindById

我所做的只是將以下參考添加到我的網站:

MyProject.Infrastructure.EntityFramework
MyProject.Web

在我的web.config中:

MyProject.Infrastructure.EntityFramework
MyProject.Web

在關閉system.webServer標籤下面:

MyProject.Infrastructure.EntityFramework
MyProject.Web

我希望這將有所幫助。


熱門答案

你做了什麼創建了對EntityFramework.SqlServer.dll的引用。它確保使用您的數據訪問程序集將此程序集複製到項目的bin文件夾中。

您可以通過在數據訪問程序集中的某處添加以下內容來執行相同的操作:

Type _Hack = typeof(System.Data.Entity.SqlServer.SqlProviderServices)



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因