2017-04-26 122 views
1

我創建了一個ASP.NET MVC應用程序和我的實體框架版本是6.0.0,但我希望實體框架版本4.4.0。更改實體框架v6到實體框架v4.4 - 獲取錯誤

我已經引用版本$ .4.0的DLL,也改變了版本package.config

我收到此錯誤:

"Severity Code Description Project File Line Error CS1705 Assembly 'Microsoft.AspNet.Identity.EntityFramework' with identity 'Microsoft.AspNet.Identity.EntityFramework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' which has a higher version than referenced assembly 'EntityFramework' with identity 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' Final c:\users\navya\documents\visual studio 2015\Projects\Final\Final\Models\IdentityModels.cs

請讓我知道我有當我改變我參考我的實體框架的版本進行修改。

+0

你能解釋爲什麼你想在EF版本中倒退嗎?我非常懷疑Asp.Net Identity將運行在舊的EF版本上。 EF 4超過5歲。 – Amy

+0

嘗試更改定位框架。 (不是實體框架,而是從4.6到3.5/4的.net框架)https://msdn.microsoft.com/en-us/library/bb398202.aspx –

+0

不要更改package.config文件中的版本。使用NuGet包管理器。您可以在那裏更改版本,或者至少卸載EF6。您可能必須更改目標框架才能安裝EF4。這可能會清除錯誤。 –

回答

0

簡而言之 - 你不能那樣做。標識庫是針對EF6編譯的,它不適用於較小的版本。 Upgrade path從4到6列出了不允許在任何情況下使用v4的重大更改。

您可以獲得source code,在那裏更改EF版本,調整源代碼以使用v4,構建二進制文件,直接在您的項目中引用二進制文件,而不需要NuGet package =>利潤(或者更確切地說是後退和維護噩夢)

或者你可以建立自己的執行IUserStore依靠EF4,使身份使用您的實現。

除此之外,你是運氣不好。你不應該使用EF4,但我懷疑這不是你做出的決定。