繁体   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