簡體   English   中英

NHibernate:讀取 mysql Blob 字段 - 值返回為“System.Byte []”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM