0

在过去的 3 个月里,我一直在使用一种解决方法来解决 mysql 连接器打开和关闭的问题。我什至最近提交了一个错误报告。但是,我发现 mysql 连接器的多个实例在高级 linq 使用的情况下失败。有些可以追溯到 2009 年(3 年),但仍未解决。几乎在所有情况下,用户都会切换连接器。

我正在考虑做同样的事情。但是,我发现 mysql 连接器在我的项目中存在的位置。据我所知,它只是一个包含.dll(mysql.data 和 mysql.data.entity)。之后,它仅在 web.config 中被引用。

对连接器的第一个引用位于连接字符串中providerName = "MySql.Data.MySqlClient"

第二个参考是提供者的定义

<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>

第三个是程序集内部

<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 进行交互。因为它是开源的,所以可以从 oracle 下载实际代码。

于 2012-10-17T22:37:48.357 回答