[英]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。
執行以下操作(保留您剛才粘貼的內容):
<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.