0

過去 3 か月間、回避策を使用して mysql コネクタのオンとオフの問題に取り組んできました。私も最近バグレポートを提出しました。ただし、高度な linq の使用状況では、mysql コネクタの複数のインスタンスが失敗することがわかりました。いくつかは 2009 年 (3 年) にさかのぼり、まだ解決されていません。ほとんどの場合、ユーザーはコネクタを切り替えました。

私も同じようにすることを検討しています。ただし、プロジェクト内の mysql コネクタがどこに存在するかを調べました。私が知る限り、それは含まれているだけです.dll(mysql.data および mysql.data.entity)。その後、web.config でのみ参照されます。

コネクタへの最初の参照は、接続文字列providerName = "MySql.Data.MySqlClient".

2 番目の参照は、プロバイダーの定義です。

<system.data>
 <DbProviderFactories>
  <clear />
  <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.5.4.0,
          Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
 </DbProviderFactories>
</system.data>

3 つ目は、アセンブリの内部です。

<add assembly="mysql.data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

そして最後は別のアセンブリ参照です

<dependentAssembly>
    <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.5.4.0" newVersion="6.5.4.0" />
</dependentAssembly>

これは本当にコネクタのフットプリント全体ですか?

4

1 に答える 1

0

Is this really the whole footprint of the connector?

はいといいえ。

はい

コネクタを参照するプロジェクトに関する限り、これはフットプリント全体です。作成する必要がある唯一の構成はMySql.DataMySql.Data.Entityプロジェクトへの参照として追加することです。通常、これらはフォルダー内にあり、参照が追加されるとフォルダーpackagesにコピーされます。bin

いいえ

コネクタには、多くの内部コードが実行されています。定義されている場所により、コネクタは から継承および拡張されますDbProviderFactory。この拡張機能には、mysql との対話を実行する方法を決定する多くのクラスとサブクラスが含まれます。オープンソースなので、実際のコードはオラクルからダウンロードできます。

于 2012-10-17T22:37:48.357 に答える