[英]NHibernate: Reading mysql Blob field - value returned as “System.Byte[]”
我有一個具有以下屬性的 class:
virtual public string Data { get; set; }
example.hbm.xml 將其綁定到:
<property name="Data" type="string" column="data" ></property>
MySql 中的表是通過以下方式創建的:
CREATE TABLE `xxx` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=binary;
我可以成功寫入數據庫,並且可以看到列中的文本正確寫入。
當我嘗試從此表中讀取記錄時,“數據”屬性的值為“System.Byte []”。 這也是該屬性的值。 它的類型是'System.String'。
該怎么辦? 提前感謝任何線索。
我也試過 charset=UTF8 。
我還在映射文件中嘗試了 type="StringClob" 。
謝謝蒂梅克
您可能需要將其作為 byte[] 進行讀寫。 所以你的屬性定義看起來像這樣:
public virtual byte[] Data { get; set; }
除了此更改之外,您還需要更改映射中的類型。 我不確定是什么類型。 我認為它可能是blob。
如果需要,您可以輕松地將此數據轉換為字符串。
我不是 MySQL 專家,但您可能希望列類型為text
而不是blob
。
這樣, type="StringClob"
應該可以工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.