[A] MySql.Data.MySqlClient.MySqlConnection нельзя преобразовать в [B] MySql.Data.MySqlClient.MySqlConnection - PullRequest
5 голосов
/ 22 декабря 2011

Я получаю эту странную необъяснимую ошибку, когда загружаю свое приложение на сервер для тестирования.Из того, что я изучал, похоже, что это вызвано конфликтом MySql.Data, загруженная копия принадлежит: 6.3.7.0.

Как я мог решить эту проблему?Я думал, что просто положить его в корзину «переопределит» тот, что в GAC?

NHibernate.Exceptions.GenericADOException: не удалось выполнить запрос [SELECT this_.Id as Id18_0_, this_.Email как Email18_0 _,

(и т. Д. Свойства)

ОТ User this_ ГДЕ this_.Email =?и этот_пароль =?] Позиционные параметры: # 0> WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO + r4mCJQWA1jZ9zRvefcGz6ZA69b3v # 1> 97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F

[SQL: SELECT this_.Id, как Id18_0_, this_.Email как Email18_0_,

(и т.д. свойства)

ОТ User this_ ГДЕ this_.Email =?и this_.Password =?] --->

System.InvalidCastException: [A] MySql.Data.MySqlClient.MySqlConnection нельзя привести к [B] MySql.Data.MySqlClient.MySqlConnection.Тип A происходит от «MySql.Data, версия = 6.2.3.0, Culture = нейтральный, PublicKeyToken = c5687fc88969c44d» в контексте «По умолчанию» в расположении «C: \ Windows \ assembly \ GAC_MSIL \ MySql.Data \ 6.2.3.0__c5687fc88969c44d \».MySql.Data.dll.Тип B происходит из «MySql.Data, версия = 6.3.7.0, Culture = нейтральный, PublicKeyToken = c5687fc88969c44d» в контексте «По умолчанию» в расположении «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET файлы \ root \ cb584441 \ 17e039bb \ assembly \ dl3 \ 6b14fe89 \ 804a4095_b2c0cc01 \ MySql.Data.DLL '.

в MySql.Data.MySqlClient.MySqlCommand.set_DbConnection (значение DbConnection) в System.Data.Common.DbCommand.System.Data.IDbCommand.set_Connection (значение IDbConnection) в NHibernate.repatb.bbcmd) в NHibernate.QueryParameters queryParameters, логическое returnProxies) в NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections (сеанс ISessionImplementor, QueryParameters queryParameters, логический returnProxies) в сеансе NHibernate.Loader.Loader.- в NHibernate.Loader.Loader.DoList (сеанс ISessionImplementor, QueryParameters queryParameters) в NHibernate.Loader.Loader.ListIgnoreQueryCache (сеанс ISessionImplementor, QueryParameters queryParameters) в NHibernate.Loader.Loader.List (сеанс ISessionImplementor, 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 () в NHibernate.Criterion.QueryOID.IuIOI.*

Ответы [ 2 ]

17 голосов
/ 10 мая 2014

У меня такая же проблема, но спустя годы!

Мой сервер установил в gac версию MySql Connector 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>
0 голосов
/ 22 декабря 2011

Как говорит ожидание, вы используете две разные версии MySql. Версия 6.2.3.0 и версия 6.3.7.0. С этого момента я могу только догадываться: возможно, вы используете dll, созданную с другой версией MySql (и она позволяет установку бок о бок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...