NHibernate:无法从Test.SqlServerCeDriver_ImageFix创建驱动程序

时间:2009-09-17 13:44:57

标签: nhibernate sql-server-ce

我试图解决一个问题,当使用NHibernate和使用图像列的SqlServerCeDriver时,会收到一个错误:“将字节数组截断为8000的长度。”。我找到了以下解决方案:

http://mgeorge-notes.blogspot.com/2009/05/nhibernate-mapping-from-binary-to.html

创建了以下类:

namespace Test
{
    public class SqlServerCeDriver_ImageFix : SqlServerCeDriver
    {
        protected override void InitializeParameter(IDbDataParameter dbParam, string name, SqlType sqlType)
        {
            base.InitializeParameter(dbParam, name, sqlType);

            if (sqlType is BinarySqlType)
            {

                PropertyInfo dbParamSqlDbTypeProperty = dbParam.GetType().GetProperty("SqlDbType");

                dbParamSqlDbTypeProperty.SetValue(dbParam, SqlDbType.Image, null);

            }

        }

    }
}

但是当我改变NHibernate映射时     NHibernate.Driver.SqlServerCeDriver 至     Test.SqlServerCeDriver_ImageFix 我收到了错误,但我不确定原因。

内部异常是:“无法加载类型Test.SqlServerCeDriver。可能的原因:未指定程序集名称。”

任何人都对我做错了什么有任何想法?

1 个答案:

答案 0 :(得分:1)

在配置中定义驱动程序时,使用AssemblyQualifiedName定义它,即:

Test.SqlServerCeDriver_ImageFix, MyAssemblyThatContainsThisType