OK, I have a workaround for this bug. It works for me.
Create a new driver and make it derive from actual SqlServerCeDriver
like so:
using System.Data;
using System.Data.SqlServerCe;
using NHibernate.SqlTypes;
namespace MyNamespace
{
public class SqlServerCeDriver : NHibernate.Driver.SqlServerCeDriver
{
protected override void InitializeParameter(IDbDataParameter
dbParam, string name, SqlType sqlType)
{
base.InitializeParameter(dbParam, name, sqlType);
if (sqlType is BinarySqlType)
{
var parameter = (SqlCeParameter) dbParam;
parameter.SqlDbType = SqlDbType.Image;
}
}
}
}
Use this driver instead of NH's one.
What I do here is I override every BinarySqlType parameter with
SqlDbType.Image type.
I can get away with it, because in my schema I have no ordinary
VARBINARY columns, only IMAGE columns. (And of course I reference
SqlServerCe assembly in my project, NHibernate avoids that with
reflection)
Problems (bugs?) on NH's side:
- sqlType is BinarySqlType and not BinaryBlobSqlType even though the
associated property is defined as BinaryBlob in hbm.xml mapping file.
- sqlType has no length defined (Length==0, LengthDefined==false)
even though it has length defined in mapping file.
Hope this will help somebody.
Regards
Artur
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---