我遇到一個問題,用NHibernate的schemaexport函數創建我的Oracle數據庫。 對於定義爲byte []的屬性,它創建一個RAW類型的DB字段(順便限制爲2000字節)。 此字段類型不足以滿足我的需要,而我需要NH來創建blob字段。 我該如何存檔? 我試圖在映射文件(我使用xml映射,因此hbm文件)中聲明字段指定type =「Binary」和type =「BinaryBlob」,但是這些字段都沒有達到預期的效果:創建的字段總是RAW。 任何人都可以幫助我嗎?與Oracle Blob字段NHibernate模式導出問題
1
A
回答
1
<property name="prop">
<column name="blobcolumn" sql-type="BinaryBlob">
</property>
更新:也許這也可以做的伎倆
<property name="prop" type="Binary" length="1000000"/>
1
我有一個類似的問題和解決的辦法是長度屬性:
<property name="Attachment" length="5224880"/>
如果未指定長度那麼無論你在類型屬性中寫入它將以oracle中的RAW(2000)結尾,因爲它的最大值是2000字節,但如果你說我需要5 MB或5224880字節的字節,那麼nhibernate切換到BLOB自動地y方法,因爲它是更大然後2000個字節
所以給點淨資產
public virtual byte[] Attachment { get; set; }
正確映射將
<property name="Attachment" length="5224880"/>
或者你可以探索在代碼庫的OracleLiteDialect.cs(源代碼)的Nhibernate
0
如果有人想要一個約定的方式來做byte []類型轉換成數據庫中的BLOB我想出了這個:
public class ByteArrayToDbBlobConvention : IPropertyConvention, IPropertyConventionAcceptance
{
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(x => x.Type == typeof(byte[]));
}
public void Apply(IPropertyInstance instance)
{
instance.CustomSqlType("BLOB");
}
}
相關問題
- 1. MySQL導出爲CSV與blob字段
- 2. Oracle導出問題
- 3. NHibernate Oracle XMLType問題
- 4. BLOB字段與MATLAB
- 5. Oracle 11g的NHibernate TransactionScope問題
- 6. Oracle 10g導入導出問題
- 7. CSV字段導入格式問題
- 8. Yii 1 +引導模式彈出問題
- 9. 風景模式問題與導航欄
- 10. GAE備份,BLOB字段與Blob存儲
- 11. 如何導入從Oracle BLOB和CLOB字段中使用sqoop
- 12. 從Oracle blob字段提取文件;
- 13. 在導出號碼字段中導出爲excel問題
- 14. Django Blob模型字段
- 15. 模式引導問題
- 16. 功能NHibernate - 模式映射問題
- 17. 問題與二進制字段和命名查詢 - nHibernate
- 18. Oracle導入導入問題
- 19. 模板導出問題
- 20. 使用datadump導出oracle模式
- 21. org模式導出爲降價和字符實體問題
- 22. 導出CSV字段格式
- 23. 與mvc和nhibernate的mysql blob
- 24. SQOOP導出 - 問題與UPSERT
- 25. Python模式導入問題
- 26. Oracle日期字段 - 時間問題
- 27. SOLR模式設計問題:字段缺席或布爾字段?
- 28. NHibernate:驗證模式與字節[]屬性
- 29. NHibernate Oracle存儲過程問題
- 30. 將nHibernate連接到Oracle問題
你能指點我在哪裏可以找到sql-type可能的值嗎? 'type =「BinaryBlob」'有什麼區別? – themarcuz 2012-02-22 11:27:39
'sql-type'用於指定數據庫中存在的數據庫類型。我不知道是否有預定義的值,或者它是否只在sqlcreatscript中作爲字符串發送 – Firo 2012-02-22 12:00:13