[一]MySql.Data.MySqlClient.MySqlConnection不能强制转换为[B]MySql.Dat
本文关键字:MySql 转换 Dat MySqlConnection Data MySqlClient 不能 | 更新日期: 2023-09-27 18:18:47
当我将应用程序上传到服务器进行测试时,我得到了这个奇怪的无法解释的错误。从我的研究来看,这似乎是由MySql冲突引起的。数据,我上传的副本属于:6.3.7.0.
我该如何解决这个问题?我以为把它放在垃圾箱里就能"覆盖"GAC里的那个?
NHibernate.Exceptions。GenericADOException: cannot execute query [SELECT this_.]我是Id18_0_,这个_。Email为Email18_0_,
(等属性)
FROM User
this_ WHERE this_。Email = ?和this_。密码= ?位置参数:#0>WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO+ r4mcjqwa1jjz9zrvefcgz6za69b3v #1> 97403ba77f7c26bec6dcf6d7df5d79c3aab2760e6ae1eb26f5d10d384e069f8c6089c47d3f1f0f17e7ebf30f71a68a39df8863646f
[SQL: SELECT this_。]我是Id18_0_,这个_。Email为Email18_0_,
(等属性)
FROM User
this_ WHERE this_。Email = ?和this_。密码= ?]->
系统。InvalidCastException:(一)MySql.Data.MySqlClient。MySqlConnection不能强制转换为[B]MySql.Data.MySqlClient.MySqlConnection类型A来源于MySql。数据,版本=6.2.3.0,文化=中性,PublicKeyToken=c5687fc88969c44d'在上下文'默认'在位置'C:'Windows'assembly'GAC_MSIL'MySql.Data'6.2.3.0__c5687fc88969c44d'MySql.Data.dll'。类型B来源于MySql。Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' in context 'Default' at location 'C:'Windows' microt.net 'Framework'v4.0.30319'Temporary ASP。网络文件' ' cb584441 ' 17根e039bb '会议' dl3 ' 804 a4095_b2c0cc01 b14fe89 ' ' MySql.Data.DLL"。
在MySql.Data.MySqlClient.MySqlCommand。set_DbConnection(DbConnection值)在System.Data.Common.DbCommand.System.Data.IDbCommandset_Connection(IDbConnection值)在NHibernate.AdoNet.AbstractBatcher。准备(IDbCommand cmd)在NHibernate.AdoNet.AbstractBatcher。ExecuteReader(IDbCommand cmd)在NHibernate.Loader.Loader。gettresultset (IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor会话)在NHibernate.Loader.Loader。DoQuery(ISessionImplementor session, QueryParameters, QueryParameters, Boolean returnProxies)在NHibernate.Loader.Loader。DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters, QueryParameters, Boolean returnproxy)(ISessionImplementor session, QueryParameters QueryParameters)——内部异常堆栈跟踪的结束——在NHibernate.Loader.Loader。在NHibernate.Loader.Loader.加载器中设置一个ISessionImplementor会话,QueryParameters, QueryParameters。listignrequerycache (ISessionImplementor session, QueryParameters QueryParameters)List(ISessionImplementor session, QueryParameters, QueryParameters, ISet 1 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.QueryOver
) 1.SingleOrDefault() at nhibernate . criteria . queryover ' 1.NHibernate.IQueryOver.SingleOrDefault()
我有同样的问题,但多年后!
我的服务器已经在gac中安装了MySql连接器6.4.6版本,但我正在使用6.8.3版本,我得到了"不能转换错误"。我通过将以下部分添加到.config文件
来修复它<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>
我有同样的问题,版本18和19之间的冲突。在网络上做这个。Config修复了它。将新版本设置为您机器中的版本。
<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>
正如预期的那样,您正在使用两个不同版本的MySql。6.2.3.0
和6.3.7.0
版本。从这一点上,我只能猜测:也许你正在使用一个与不同版本的MySql构建的dll(并且它允许并排安装)。