今天我正在研究 MySQL 数据库,我不知道如何将 Byte[] 映射到 BLOB 列...
我的表看起来是这样的:
CREATE TABLE `images` (
`Id` INT NOT NULL AUTO_INCREMENT ,
`imgText` VARCHAR(45) NULL ,
`image` BLOB NULL ,
PRIMARY KEY (`Id`) );
Mapping:
public class imagesMap : ClassMap<images> {
public imagesMap() {
Id(x => x.Id);
Map(x => x.imgText);
Map(x => x.image).CustomType<BinaryBlobType>();
}
}
业务对象:
public class images {
public virtual int Id{get;set;}
public virtual string imgText{get;set;}
public virtual Byte[] image{get;set;}
}
如果我启动我的应用程序,我会立即遇到异常:
NHibernate.MappingException:无法实例化 IType BinaryBlobType:System.MissingMethodException
他说这个 IType 是“没有定义构造函数”
我不明白为什么它不起作用,每个人都告诉我我只需要映射自定义类型()
我将不胜感激每一个帮助!
格雷兹,本尼
好的,10 分钟后我自己找到了问题的解决方案。
对于同样遇到此问题的每个人:
用于映射
public virtual byte[] array;
对于 BLOB,您不需要定义自定义类型,FNH 甚至“自动”执行此操作。
字节数组的映射应该这样工作:
Map(x=>x.array);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)