2

mysql で動作する asp.net mvc5 ID を取得できません。ここに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>

エラーは次のとおりです。

追加情報: Entity Framework プロバイダー タイプ '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 プロバイダーはこのクラスから継承する必要があり、'Instance' メンバーはプロバイダーのシングルトン インスタンスを返す必要があります。これは、プロバイダが Entity Framework 6 以降をサポートしていないことが原因である可能性があります

4

4 に答える 4

1

これは、EF 6 を参照していて、MySQL コネクタがまだ EF6 をサポートしていないためです。EF 5 にダウングレードするか、MySQL Connector Alpha を入手できます。

これを行います(貼り付けたもののコピーを保管してください):

  1. EF6 へのすべての参照を消去する
  2. Nuget から EF 5 を取得します (NuGet コンソールを開き、 Install-Package EntityFramework -Version 5.0.0 と入力します)。
  3. エンティティを再生成する
  4. <DbProviderFactories>あなたが持っているのと同じように、セクションとセクションを取得していることを確認してください<providers>
于 2013-11-02T02:52:51.073 に答える
0

問題を解決するはずのMySql.Data.Entity.EF6 NuGet パッケージに出会いました。これを適切に機能させるには、MySql と EF へのすべての参照を完全に削除する必要があることがわかりました (すべての web.config 参照を含む)。このパッケージは EF6 に依存しているため、パッケージ インストール プロセスの一部としてインストールされます。

于 2014-02-08T22:45:29.830 に答える
0

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 です。

于 2013-11-18T05:39:03.373 に答える
0

また、ADO.NET を使用して MySQL と通信する MySQL ASP.NET Identity 2.1 プロバイダーの完成した実装を使用することもできます。これは NuGet パッケージとして入手できます。詳細については、次のブログ記事を参照してください: ASP.NET Identity 2.1 implementation for MySQL

于 2015-01-23T10:56:00.393 に答える