我在Oracle數據庫中有一個表,其列爲Long
類型。在本專欄中,我們存儲了一個長文本,並且我們無法將其類型更改爲CLob
,因爲有其他系統將其用作Long
類型。我正在寫一個新的應用程序來讀取此列,並使用NHibernate
和Fluent NHibernate
來執行一些任務來進行映射。將一個長類型列從Oracle映射到Nhibernate
映射沒問題,除了這一列以外,一切正常。當我從該表中讀取一個實體時,long
列出現一個空字符串,如""
。
我嘗試了這些:
Map(x => x.Query).Column("PNL_QUERY");
和
Map(x => x.Query).Column("PNL_QUERY").CustomType("StringClob");
和
Map(x => x.Query).Column("PNL_QUERY").CustomType("StringClob")
.CustomSqlType("Long");
和
Map(x => x.Query).Column("PNL_QUERY").CustomType("Long");
,沒有任何工作。當我從數據庫加載某個實體時,它們都會在查詢字段中返回""
。
如何在Oracle中映射這種類型的列?
謝謝。
的解決方案作爲一個隨筆,也許你應該嘗試從Oracle方言在方言習俗申報這種長型重載RegisterLargeObjectTypeMappings()方法見:https://github.com /nhibernate/nhibernate-core/blob/master/src/NHibernate/Dialect/Oracle8iDialect.cs#L124 – jbl