映射clobs我一直在嘗試使用Fluent NHibernate 1.2.0.712針對Oracle 10g映射clob字段。我使用System.Data提供程序,因爲它默認情況下可用,並且由於之前的客戶端問題而試圖避免添加對ODP.Net的引用。使用Fluent NHibernate,Oracle 10g和OracleClientConfiguration.Oracle10
然而,當我嘗試使用映射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作爲提供者之外,是否有人對此修復有進一步的建議?
我不要了微軟供應商,但ODP.NET你不需要爲CLOB的任何特殊,他們只是映射爲普通字符串(有一個例外,它試圖將空字符串插入爲空而不是空clob)。你的'plaparte.disposiciones'屬性是一個字符串嗎? – cremor