我一直在尝试使用 Fluent NHibernate 1.2.0.712 针对 Oracle 10g 映射 clob 字段。我正在使用 System.Data 提供程序,因为它默认可用,并且由于以前的客户端问题而试图避免添加对 ODP.Net 的引用。
但是,当我尝试插入具有映射 clob 属性的实体时,出现错误:
ORA-01461: 只能绑定 LONG 值以插入 LONG 列
我尝试通过使用以下约定来解决此问题,并使用 [StringLength(4000)] 装饰适当的属性:
public class StringLengthConvention : AttributePropertyConvention<StringLengthAttribute>
{
protected override void Apply(StringLengthAttribute attribute, IPropertyInstance instance)
{
instance.Length(attribute.MaximumLength);
}
}
这没有用。
然后我使用“TEXT”、“CLOB”和“clob”值尝试了以下操作。都没有工作:
public class plaparteMappingOverride : IAutoMappingOverride<plaparte>
{
public void Override(AutoMapping<plaparte> mapping)
{
Map(x => x.disposiciones).CustomSqlTypeIs("TEXT");
}
}
除了将 ODP 添加为提供程序之外,是否有人对此修复有进一步的建议?