从mysql ado.net库切换到mysql连接器问题

emeijp43  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(522)

我已经把我的c#项目从mysql ado.net库切换到mysql connector,因为mysql库中有一个bug。
与上述问题有关的前一个问题:stackoverflow问题
我使用mysql连接器文档作为交换库的参考。
随着库的更改,现有项目中的mysql关键字出现了一些新的错误。

  1. MySqlConnection 私下里 MySqlConnection connection; 线路。
    错误:表示到mysql服务器数据库的打开连接。不能继承此类。类型“mysqlconnection”同时存在于“mysql.data”和“mysqlconnector”中。
  2. MySqlExceptioncatch (MySqlException ex) 线路。
    错误:当mysql返回错误时抛出异常。不能继承此类。类型“mysqlexception”同时存在于“mysql.data”和“mysqlconnector”中。
  3. MySqlCommandMySqlCommand cmd = new MySqlCommand(); 线路。
    错误:表示要对mysql数据库执行的sql语句。不能继承此类。类型“mysqlcommand”同时存在于“mysql.data”和“mysqlconnector”中。
  4. MySqlDbTypecmd.Parameters.Add("?jobNo", MySqlDbType.VarChar).Value = (values[0]); 线路。
    错误:指定在mysql.data.mysqlclient.mysqlparameter中使用的字段属性的mysql特定数据类型。类型“mysqldbtype”同时存在于“mysql.data”和“mysqlconnector”中。
    关于如何减轻上述错误有什么建议吗?
ttisahbt

ttisahbt1#

主要错误是:
类型“mysqlconnection”同时存在于“mysql.data”和“mysqlconnector”中。
似乎您的项目正在引用这两个 MySql.Data.dll 以及 MySqlConnector . 卸载 MySql.Data 使用nuget包管理器打包,并确保 MySql.Data.dll 从你的csproj中删除了参考资料, packages.config 等。
(在高级方案中,可以使用extern别名引用这两个库,但我强烈建议不要这样做:它可能会导致创建两个连接池、启动两个清理线程等。)

fjaof16o

fjaof16o2#

类型“mysqlconnection”同时存在于“mysql.data”和“mysqlconnector”中,表示该类型同时存在于两个程序集中,这导致引用不明确。通常你可以简单地移除 MySql.Data.dll 使用nuget包管理器的引用 Uninstall-Package MySql.Data 命令(并删除该程序集的所有可能痕迹),则应该解决引用问题,但在某些情况下,可以执行以下步骤:
转到“引用属性”并设置别名 MySqlConnector 用于在所有 using 陈述,例如。 extern alias MySqlConnectorAlias; .
使用步骤(1)中别名的引用,例如。 MySqlConnectorAlias::MySql.Data.MySqlClient.MySqlConnection .
(仅适用于.net core)在使用步骤(1)和(2)之前,请编辑包含 ChangeAliasesOfStrongNameAssemblies 这样地:

<Project Sdk="Microsoft.NET.Sdk.Web">

   <!-- other stuff -->

   <Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
       <ItemGroup>
           <ReferencePath Condition="'%(FileName)' == 'MySqlConnector'">
               <Aliases>MySqlConnectorAlias</Aliases>
           </ReferencePath>
       </ItemGroup>
  </Target>

  <!-- other stuff -->

</Project>

相关问题