2011-01-20 14 views
4

今日、私はMySQLデータベースに取り組んでいる、と私はBLOB列に[]バイトをマッピングする方法がわからない...流暢NHibernateはBinaryBlobTypeが

私の表は、このようになります。

CREATE TABLE `images` (
`Id` INT NOT NULL AUTO_INCREMENT , 
`imgText` VARCHAR(45) NULL , 
`image` BLOB NULL , 
PRIMARY KEY (`Id`)); 

マッピング:

public class imagesMap : ClassMap<images> { 
    public imagesMap() { 
     Id(x => x.Id); 
     Map(x => x.imgText); 
     Map(x => x.image).CustomType<BinaryBlobType>(); 
    } 
} 

Buisnessobject:

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のために言いますが、私はunterstandすることはできません

を「いいえコンストラクタが定義された」でありますなぜそれが機能していない、誰も私はカスタムタイプ()をマップする必要があると私に言った

私はそれぞれの助けをありがとう!

Greetz、ベニは

答えて

5

[OK]を、10分後、私は自分で自分の問題の解決策を見つけました。また、この問題にはまり、みんなのために

カスタム型を定義する必要はありませんBLOBに

public virtual byte[] array; 

をマッピングするための、FNHも、この「自動的に」行います。

バイト配列のマッピングはそう動作するはず:

Map(x=>x.array);