首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将[A]MySql.Data.MySqlClient.MySqlConnection转换为[B]MySql.Data.MySqlClient.MySqlConnection

不能将[A]MySql.Data.MySqlClient.MySqlConnection转换为[B]MySql.Data.MySqlClient.MySqlConnection
EN

Stack Overflow用户
提问于 2011-12-22 22:18:22
回答 3查看 10K关注 0票数 7

当我将我的应用程序上传到服务器进行测试时,我收到了这个奇怪的莫名其妙的错误。根据我的研究,这似乎是由于冲突的MySql.Data造成的,我上传的副本属于: 6.3.7.0。

我该如何解决这个问题呢?我想只要把它放进垃圾箱就会“覆盖”GAC中的那个?

NHibernate.Exceptions.GenericADOException:无法执行查询[ SELECT this_.Id as Id18__,this_.Email as Email18__,

(etc属性)

User this_,其中this_.Email =?和this_.Password =?]位置参数:#0>WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO+r4mCJQWA1jZ9zRvefcGz6ZA69b3v #1>97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F

[SQL:选择this_.Id作为Id18__,this_.Email作为Email18__,

(etc属性)

User this_,其中this_.Email =?和this_.Password = ?] ->

System.InvalidCastException: AMySql.Data.MySqlClient.MySqlConnection不能强制转换为BMySql.Data.MySqlClient.MySqlConnection。类型A源自位于位置'C:\Windows\assembly\GAC_MSIL\MySql.Data\6.2.3.0__c5687fc88969c44d\MySql.Data.dll'.的上下文'Default‘中的'MySql.Data,Version=6.2.3.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d类型B源自位于位置'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary Files\root\cb584441\17e039bb\assembly\dl3\6b14fe89\804a4095_b2c0cc01\MySql.Data.DLL'.的上下文'Default‘中的'MySql.Data,Version=6.3.7.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d’

在MySql.Data.MySqlClient.MySqlCommand.set_DbConnection(DbConnection值)在System.Data.Common.DbCommand.System.Data.IDbCommand.set_Connection(IDbConnection值处)在NHibernate.AdoNet.AbstractBatcher.Prepare(IDbCommand _ cmd)在NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand _ cmd)在NHibernate.Loader.Loader.GetResultSet(IDbCommand _ st、Boolean _ autoDiscoverTypes、Boolean _ callable、RowSelection _ selection、ISessionImplementor _ session)在NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor _ session、QueryParameters _ QueryParameters、Boolean _ returnProxies)在NHibernate.Loader.Loader.DoQuery(ISessionImplementor _ session、queryParameters_ queryParameters,NHibernate.Loader.Loader.DoList(ISessionImplementor会话中的Boolean returnProxies),QueryParameters queryParameters) -内部异常堆栈跟踪结束-在NHibernate.Loader.Loader.DoList(ISessionImplementor会话中,NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor会话中的QueryParameters queryParameters),NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.SingleOrDefault()会话中的QueryParameters queryParameters),QueryParameters queryParameters,ISet1 querySpaces, IType[] resultTypes) at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results) at NHibernate.Impl.CriteriaImpl.List(IList results) at NHibernate.Impl.CriteriaImpl.UniqueResult[T]() at NHibernate.Criterion.QueryOver1.SingleOrDefault()中

EN

回答 3

Stack Overflow用户

发布于 2014-05-10 07:54:21

我也遇到了同样的问题,但是几年后!

我的服务器已经在gac中安装了MySql连接器6.4.6版本,但我正在使用6.8.3版本,我收到了"cannot be cast error“。我通过将以下部分添加到.config文件中修复了它

代码语言:javascript
复制
<system.data>
    <DbProviderFactories>
      <!-- Removes the dll installed in gac-->
      <remove invariant="MySql.Data.MySqlClient" />

      <!-- Add the dll copied in the bin folder-->
      <add name="MySQL" description="ADO.Net driver for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
    </DbProviderFactories>
</system.data>
票数 26
EN

Stack Overflow用户

发布于 2011-12-22 22:21:58

正如预期所说,您正在使用两个不同版本的MySql。版本6.2.3.0和版本6.3.7.0。从现在开始,我只能猜测:也许您使用的是由不同版本的MySql构建的动态链接库(它允许并行安装)。

票数 0
EN

Stack Overflow用户

发布于 2020-02-23 02:38:58

我也遇到了同样的问题,版本18和版本19之间的冲突。在web.config中解决了这个问题。将新版本设置为您计算机中已有的版本。

代码语言:javascript
复制
<dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.18.0" newVersion="8.0.19.0" />
      </dependentAssembly>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8605158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档