私はEntity Framework 4で.NET MySQL Connectorを使用していますが、すべてうまくいっていますが、私たちのアプリケーションにMySQLクライアントDLLファイルをパッケージ化したいので、各サーバにmysqlをインストールすることを心配するには、各アプリケーションに必要な正しいコピーがあるだけです。.NET MySQL Connectorと競合するDbProviderFactories
これを可能にするために、私はMySQLの参照は、「ローカルコピーは、」そう、彼らはビンのフォルダにコピーされるだろうし、私はapp.configに以下を追加したことを確認しました:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
これは動作し、私はリモートサーバにmysqlをインストールせずにアプリケーションをデプロイすることができましたが、ローカルのdevマシンに問題があります(にMySQLコネクタがインストールされています)、EFが接続:
列 'InvariantName'は一意に制限されています。値 'MySql.Data.MySqlClient'が既に存在します。
上記のapp.configで追加したXMLをコメントアウトすると、エラーは消えてしまいます。これは、同じドライバがシステムにインストールされており、machine.configに入っている可能性があります。
解決策は何ですか。むしろ、アプリケーションをビルドするシステムに応じて、手動でコメントやコメントを解除する必要はありません。
サーバーとローカルマシンの両方で完全に動作します。ありがとう! – Kekoa
私もこの問題を抱えていましたが、これは魅力的でした。私はそれがこのようなものになると思ったが、不変のキーワードを試してみることは考えなかった。 –
これも私のために働いた!ありがとう、トン:) – DigitalRayne