2009-09-17 79 views
1

我試圖解決一個問題,當與使用圖像列的SqlServerCeDriver一起使用NHibernate時,您會收到一個錯誤:「Byte array truncation to a length of 8000.」。我發現了以下解決方案:NHibernate:無法從Test.SqlServerCeDriver_ImageFix創建驅動

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.Driver.SqlServerCeDriver 改變NHibernate的映射 Test.SqlServerCeDriver_ImageFix 我得到錯誤,但我不知道爲什麼。

內部異常是:「無法加載類型Test.SqlServerCeDriver。可能的原因:沒有指定程序集名稱。」

任何人有什麼想法做什麼即時通訊做錯了?

回答

1

當定義在配置驅動器,與AssemblyQualifiedName定義它,即:

Test.SqlServerCeDriver_ImageFix, MyAssemblyThatContainsThisType 
+0

這工作就像一個魅力。謝謝! – Kyle 2009-09-17 13:53:50

相關問題