什么是mysql提供程序?

时间:2012-10-14 20:09:54

标签: asp.net-mvc-3 web-config mysql-connector

我使用解决方法在过去3个月内打开和关闭了mysql连接器的问题。我最近提交了bug report。但是,我发现在高级linq使用情况下,多个mysql连接器实例失败。有些可以追溯到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>

这真的是连接器的整体尺寸吗?

1 个答案:

答案 0 :(得分:0)

Is this really the whole footprint of the connector?

是和否。

就涉及连接器的项目而言,这是整个足迹。唯一需要进行的配置是添加MySql.DataMySql.Data.Entity作为项目的引用。通常这些文件位于packages文件夹中,然后在添加引用后将其复制到bin文件夹中。

连接器有很多内部代码。由于它的定义位置,连接器继承DbProviderFactory并在{{1}}上扩展。这个扩展涉及许多类和子类,它们决定了如何实现与mysql的交互。因为它是开源的,所以可以从oracle下载实际的代码。