En essayant de résoudre un problème où lors de l'utilisation de NHibernate avec un SqlServerCeDriver qui utilise une colonne d'image, vous recevez une erreur: "Troncature de tableau d'octets à une longueur de 8000.". J'ai trouvé la solution suivante:NHibernate: Impossible de créer le pilote à partir de Test.SqlServerCeDriver_ImageFix
http://mgeorge-notes.blogspot.com/2009/05/nhibernate-mapping-from-binary-to.html
et a créé la classe suivante:
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);
}
}
}
}
Mais quand je change la cartographie NHibernate de NHibernate.Driver.SqlServerCeDriver à Test.SqlServerCeDriver_ImageFix I obtenir l'erreur, mais je ne sais pas pourquoi.
L'exception interne est: "Impossible de charger le type Test.SqlServerCeDriver Cause possible: aucun nom d'assembly spécifié."
Quelqu'un at-il des idées sur ce que je fais mal?
Cela a fonctionné comme un charme. Je vous remercie! – Kyle