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