簡體   English   中英

mysql和asp.net身份

[英]mysql and asp.net identity

我無法獲得asp.net mvc5身份以使用mysql。 這是web.config部分。是否可能是因為EF6無法與mvc5一起使用?

<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,Version = 6.7.4.0,Culture = neutral,PublicKeyToken = c5687fc88969c44d的'Instance'成員未返回繼承的對象來自“ System.Data.Entity.Core.Common.DbProviderServices”。 實體框架提供程序必須從此類繼承,並且“實例”成員必須返回提供程序的單例實例。 這可能是因為提供程序不支持Entity Framework 6或更高版本

那是因為您引用的是EF 6,而MySQL Connector仍然不支持EF6。 您可以降級到EF 5或獲取MySQL Connector Alpha。

執行以下操作(保留您剛才粘貼的內容):

  1. 刪除所有對EF6的引用
  2. 從Nuget獲取EF 5(打開NuGet控制台,然后輸入Install-Package EntityFramework -Version 5.0.0)
  3. 重新生成您的實體
  4. 確保像您一樣獲得<DbProviderFactories><providers>部分。

完成操作后,David建議您在所有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。

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

您還可以使用MySQL ASP.NET Identity 2.1提供程序的最終實現,該提供程序使用ADO.NET與MySQL通信。 它以NuGet包的形式提供,您可以在此博客文章上閱讀更多內容: MySQL的ASP.NET Identity 2.1實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM