2013-10-31 60 views
2

我無法獲得asp.net mvc5身份以使用mysql。這裏是web.config部分。它可能是EF6不使用mvc5嗎?mysql和asp.net身份

<system.data> 
    <DbProviderFactories> 
     <remove name="MySQL Data Provider"/> 

     <add name="MySQL Data Provider" 
      invariant="MySql.Data.MySqlClient" 
      description=".Net Framework Data Provider for MySQL" 
      type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 

entityFramework> 
    <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
     <providers> 
     <provider invariantName="MySql.Data.MySqlClient" 
        type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" /> 
     </providers> 


    </entityFramework> 

錯誤是:

其它信息以實體框架 提供商類型MySql.Data.MySqlClient.MySqlProviderServices的」的 '實例' 構件, MySql.Data.Entity,版本= 6.7.4.0,Culture = neutral, PublicKeyToken = c5687fc88969c44d'沒有返回從'System.Data.Entity.Core.Common.DbProviderServices'繼承的對象 。 實體框架提供者必須繼承此類,並且 「實例」成員必須返回提供者的單例實例。 這可能是因爲供應商不支持實體框架6 或更高版本

回答

1

,因爲你們的引用EF 6,和MySQL連接器仍然不支持EF6。您可以降級到EF 5或獲取MySQL Connector Alpha。

做到這一點(保持你剛纔粘貼複印件):

  1. 刪除所有引用到EF6
  2. 從的NuGet獲取EF 5(打開的NuGet控制檯,然後輸入安裝,包裝的EntityFramework -Version 5.0 .0)
  3. 重新生成您的實體
  4. 確保您獲得<DbProviderFactories><providers>部分,就像您一樣。
+0

獲得以下錯誤消息 - 安裝 - 包:更新「的EntityFramework 6.0.1」到'的EntityFramework 5.0.0失敗。無法找到與'EntityFramework 5.0.0'兼容的'Microsoft.AspNet.Identity.EntityFramework' 版本。 – knowledgeseeker

+0

看起來像你必須降級身份... –

0

在你做了大衛建議在所有的App.config文件中看起來並且確保所有的depdentAssembly設置看起來像這樣。

<dependentAssembly> 
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 
    </dependentAssembly> 

重要的部分是bindingRedirect。

0

我遇到了MySql.Data.Entity.EF6 NuGet包,它可以解決您的問題。我發現我必須完全刪除對MySql和EF的所有引用,才能使其正常工作(包括所有web.config引用)。該軟件包依賴於EF6,因此將其作爲軟件包安裝過程的一部分進行安裝。

0

您還可以使用MySQL ASP.NET身份2.1提供程序的完成實現,該提供程序使用ADO.NET與MySQL進行通信。 這是可以作爲NuGet包,你可以閱讀更多關於這個博客帖子: ASP.NET Identity 2.1 implementation for MySQL