web-dev-qa-db-ja.com

エンティティデータモデルを作成できない-MySqlとEF6を使用

Visual Studio 2013でC#/ Webプロジェクトにedmxエンティティモデルを追加しようとしています。私の問題は、ファイルが作成されないことです。

次の手順を実行します。

  1. アイテムに名前を付けます
  2. 「データベースからEF Designer」を選択します
  3. MySQLデータベースへの接続が正常にテストされているドロップダウン(localhost)から接続を選択します
  4. 「webc.configに接続設定を保存」オプションがチェックされている
  5. [次へ]をクリックし、ウィンドウが消えてコードウィンドウに戻ります

edmxファイルは作成されません。(ただし、SQL Serverでは動作しますが、MySQLでは動作しません)

Entity Framework 6.1.2がインストールされ、MySql.DataMySql.Data.EntitiesMySql.Data.EntityMySql.Webがすべてインストールされています。

エンティティモデルファイルを追加する前に、プロジェクトを再構築しました。

最新の.NET connectorで最新のMySQLパッケージをインストールしました。

実行中:Windows 7上のVisual Studio 2013。

これを解決する方法はありますか?

23
Idan Shechter

以下の手順に従ってこの問題を解決しました。

  1. パッケージマネージャーコンソールで以下のコマンドを使用して、Nugetから_MySql.Data.Entities_をアンインストールします。_Uninstall-Package MySql.Data.Entities_

  2. MySqlコネクターのインストールパスから、最新の_MySql.Data.Entity.EF6.dll_へのプロジェクト参照を追加します:C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5

13
Loc Huynh

MySQL、ADO.NET(Database First)、EF6を使用してVisual Studio Professional 2017環境を構成しようとしたときに、同じ状況が発生しました。

注:同じ順序で手順に従ってください。

  1. 「Connector/NET」および「MySQL for Visual Studio」がインストールされている場合はアンインストール/削除します。

  2. 「MySQL for Visual Studio」v2.0.5 CTPをインストールします( MySQL for Visual Studio )。注:Connector/NETの前にVisual Studio用のMySQLをインストールしてください。

  3. 「Connector/NET」v6.9.10( Connector/Net )をインストールします。 https://i.stack.imgur.com/XOT1I.jpg 注:最初にConnector/NET v6.8、v6.10、v8を使用してみましたが、Visual Studio 2017で動作しませんでしたおよびADO.Net。 ここでは、すべてのコネクタバージョンとVisual Studio IDEとの互換性を確認できます ですが、これまでのところこのリストは不正確です。

  4. 新しいVisual Studio Professional 2017プロジェクトを作成します。

  5. [プロジェクト]タブ/ [NuGetパッケージの管理]/[参照]-> [エンティティフレームワーク]に移動して、NuGetから「EntityFramework」v6.2.0をダウンロードしてインストールします。

  6. C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.dllおよびC:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.Entity.EF6.dll;への参照を追加します。ソリューションエクスプローラー内の[参照]を右クリックし、[参照の追加/参照]-> [参照]ボタンを選択します。

  7. 次のように、エンティティフレームワークプロバイダーの下のApp.config内にMySQL EF6プロバイダー情報を追加します。

<entityFramework>
       <providers>
         <provider invariantName="MySql.Data.MySqlClient"
              type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
       </providers>
</entityFramework>
  1. [ビルド]タブ/ [プロジェクト名の再構築]に移動してプロジェクトを再構築します。

以上です。 VS2017は準備ができています。今日のように、これがすべての人に役立つことを願っています。

参照

  1. エンティティデータモデルを作成できません-MySqlとEF6を使用

  2. 'MySql.Data.MySqlClient' ADO.NETプロバイダーのEntity Frameworkプロバイダーが見つかりません

68

VS 2015にはまだこのバグがあります。バージョンの不一致が原因です。

私のシステムでは、MySQL Connector 6.9.6がありました。
NuGetパッケージマネージャーコンソールでコマンドを発行します。

Install-Package MySql.Data.Entity

デフォルトでバージョン6.9.8をインストールします。コネクタは、NuGetパッケージの実際のバージョンと一致する必要があります。
次の場所からコネクタの更新バージョンをダウンロードできます。 https://www.mysql.com/products/connector/

ここで「MySQL用のAdo.netドライバー」を選択し、対応するバージョン(この場合は6.9.8)をダウンロードします。 Visual Studioを再度開くと、ウィザードはクラッシュしません。再起動は必要ありません。

12
Lars Meldgård

以下を実行することで、この問題を解決できました。

  1. MySQLインストーラーを開き、Connector/NETの最新バージョンをインストールします
  2. 新しくインストールされたConnector/NETパッケージのバージョンと一致するバージョンの最新バージョンのMySQL.Data。*パッケージをアンインストール/再インストールします
  3. Visual Studioを再起動します
  4. 再構築ソリューション
4
user942620

他の回答からNuGetのバージョン管理に関する提案を受け取ります。 Nugetによってインストールされた_.Data_および_Data.Entitiy.EF6_を削除することにより、この問題を解決しました。

次に、「参照」を右クリックして、以下を参照します。

C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dllおよびC:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll

その後、.edmxモデルを使用してADO.Netウィザードを完了することができました。

4
Daniel Orlan

私は解決策を知っています。

Nugetは、MySQL.Data。*パッケージのEdgeバージョンをインストールしますが、おそらく以前のバージョンのコネクタがあります(私の場合、パッケージはv。6.9.6で、Connectorは6.9.5でした)。これにより、バージョンが一致しなくなります。

NuGetでInstall-Package MySql.Data.Entitiesを使用すると、6.8などの古いバージョンも取得されることに注意してください。 3、参照を自分で追加し、ソリューションに追加しようとしている参照を監視する必要があります。

3
Lucassith

これは、app.configファイルを持たないASP.NET MVCアプリケーション用です。私は失敗した試みを数えませんが、私のために働いたのは以下でした:-

  • VS notが実行されている場合、「MySQL for Visual Studio 2.0.5」-執筆時点の最新バージョンをダウンロードしてインストールします。
  • VS2017を起動し、以前にVS2017にインストールされていた場合は、「MySql.Data.Entity」および「MySql.Data」NuGetパッケージをアンインストールします。
  • 上記のリンク(執筆時点でバージョン8.0.13)を使用して、最新のMySql connector/NETをダウンロードしてインストールします。
  • プロジェクトで、上記のLopez93で説明されているように、「MySql.Data.dll」および「MySql.Data.EntityFramework.dll」dllへの参照を追加します。but N.B.前述の「MySql.Data.Entity.EF6.dll」は8.0.13には存在せず、「MySql.Data.EntityFramework.dll」のみが存在しました。
  • Web.configファイルを編集し、セクションにこの行があることを確認します

<provider invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices、MySql.Data .EntityFramework">

  • 他の「<provider invariantName = "MySql.Data.MySqlClient" ...」行を削除するかコメント化します。

  • プロジェクトをリビルドします。

ウィザードをもう一度使用してください。

私にとってこれはうまくいきました。

がんばろう!

3
jetbadger

MySQL Connector 6.9.8.0を使用しても同じ問題が発生しました。すべてのバージョンが一致しましたが、これはまだ失敗しました。 MySQLコネクタの後にVisual Studioの新しいバージョンをインストールしました(2010〜2013)。私にとっての解決策は、MySQL Connector for NETをアンインストールしてから再インストールすることでした(まったく同じバージョン)。次に、Visual Studioを再起動します。

これは同じ問題の別のバージョンのようです。

2
Andy

あなたはこの解決策を行うことができます:

  1. 新しい空のEFモデルを追加します。
  2. Emdxの設計で、データベースからモデルをクリックして更新します。
  3. データベースを選択すると、モデルが生成されます。

それは私のために働いています:)

1

MySqlのバージョン6からバージョン8.0.17.0にアップグレードすると、この問題に遭遇しました。私は この記事 に出会うまで、古い治療法のすべてを試してほぼ2日間これに苦労しました。 EF6およびバージョン8.0を使用している場合。この投稿によると、MySqlの:


Oracleは、v8.xのパッケージの名前をMySql.Data.EntityFrameworkに変更しました。 MySql.Data.Entityをアンインストールして、MySql.Data.EntityFrameworkをインストールする必要があります。


この新しい投稿があなたの一部を助けることを願っています。

0
randyh22

Web.configファイルを次から変更しました:

<provider invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices、MySql.Data.EntityFramework、Version = 8.0.11.0、Culture = neutral、PublicKeyToken = c5687fc88969c44d" />

に:

<provider invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices、MySql.Data.Entity.EF6"> </ provider>

0
Geovanny López

試すべきもう一つのこと:

---> nuget経由でentityframework 6.2.0をインストールします。

---> web.config/app.configファイルで_System.Data.SqlServerCe.4.0_プロバイダーがあることを確認します。インストールされていない場合は、以前にインストールしたエンティティフレームワークとまったく同じバージョン(この場合は6.2.0)であるnugetを使用してインストールします。

--->次に参照を追加します:(この場合、connector/NETバージョン6.9.10から)C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dllおよびC:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dllおよび再構築します。

--->このプロバイダーも追加してみてください:_<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />_再構築。

--->最後に、新しい接続で.edmxファイルを追加してみてください。

これは、VS2017とMySQLを新しいラップトップにインストールした私の場合に機能し、同じ問題がありました。

0
Lopez93