我有一个属性的类:
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;
我可以成功写入数据库,我可以看到列中的文本正确写入。
当我尝试从此表中读取记录时,数据的值为&#39;属性是System.Byte []&#39;。这也就是这个属性的价值。它的类型是System.String&#39;。
怎么办?提前感谢任何线索。
我也试过charset = UTF8。
我也尝试过type =&#34; StringClob&#34;在映射文件中。
由于 Tymek
答案 0 :(得分:3)
您可能需要以字节[]的形式读取和写入。所以你的属性定义会是这样的:
public virtual byte[] Data { get; set; }
除了此更改之外,您还需要更改映射中的类型。我不确定是什么类型的。我认为这可能是blob。
如果需要,您可以轻松地将此数据转换为字符串。
答案 1 :(得分:1)
我不是MySQL专家,但您可能希望列类型为text
而不是blob
。
有了这个,type="StringClob"
应该可以工作