奇怪的nhibernate+;linq+;mysql异常

奇怪的nhibernate+;linq+;mysql异常,mysql,linq-to-nhibernate,Mysql,Linq To Nhibernate,当使用linq在nhibernate中运行查询时,我遇到了一个奇怪的错误 如果我直接在mysql中运行查询,一切正常。如果我重新运行linq查询,我不会得到任何错误,但只会获取id字段(一个字符串)。如果我多次运行查询,有时会正确获取第一行 我的google fu发现的唯一一件事是,但我看不出它们之间有什么关联 编辑:它似乎与我数据库中的varbinary(128)字段有关。如果我删除这个映射,一切都会恢复正常。我正在将它映射到类中的byte[]字段 编辑:我正在使用NHibernate 2.1

当使用linq在nhibernate中运行查询时,我遇到了一个奇怪的错误

如果我直接在mysql中运行查询,一切正常。如果我重新运行linq查询,我不会得到任何错误,但只会获取id字段(一个字符串)。如果我多次运行查询,有时会正确获取第一行

我的google fu发现的唯一一件事是,但我看不出它们之间有什么关联

编辑:它似乎与我数据库中的varbinary(128)字段有关。如果我删除这个映射,一切都会恢复正常。我正在将它映射到类中的byte[]字段

编辑:我正在使用NHibernate 2.1.2.4000 NHibernate.Linq 1.1.0.1001(最新的GA版本),我已经尝试使用MySql Connector 6.1.2和6.2.4(6.3.5由于某种原因未能安装)

以前有人遇到过这个错误吗?

我发现了这个错误。 如果二进制字段为空,它将在其中抛出

NHibernate.Util.ADOExceptionReporter [(null)] - System.IndexOutOfRangeException: Buffer index must be a valid index in buffer
     at MySql.Data.MySqlClient.MySqlDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
     at NHibernate.Driver.NHybridDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
     at NHibernate.Type.AbstractBinaryType.Get(IDataReader rs, Int32 index)
     at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name)
     at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
     at NHibernate.Type.AbstractType.Hydrate(IDataReader rs, String[] names, ISessionImplementor session, Object owner)
     at NHibernate.Persister.Entity.AbstractEntityPersister.Hydrate(IDataReader rs, Object id, Object obj, ILoadable rootLoadable, String[][] suffixedPropertyColumns, Boolean allProperties, ISessionImplementor session)
     at NHibernate.Loader.Loader.LoadFromResultSet(IDataReader rs, Int32 i, Object obj, String instanceClass, EntityKey key, String rowIdAlias, LockMode lockMode, ILoadable rootPersister, ISessionImplementor session)
     at NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader dr, Int32 i, ILoadable persister, EntityKey key, LockMode lockMode, String rowIdAlias, EntityKey optionalObjectKey, Object optionalObject, IList hydratedObjects, ISessionImplementor session)
     at NHibernate.Loader.Loader.GetRow(IDataReader rs, ILoadable[] persisters, EntityKey[] keys, Object optionalObject, EntityKey optionalObjectKey, LockMode[] lockModes, IList hydratedObjects, ISessionImplementor session)
     at NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader resultSet, ISessionImplementor session, QueryParameters queryParameters, LockMode[] lockModeArray, EntityKey optionalObjectKey, IList hydratedObjects, EntityKey[] keys, Boolean returnProxies)
     at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
     at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
     at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)