2011-01-18 1 views
0

に問題をNHibernateの持っているん、しかし、私は自分のタイプが[]3はORMとしてNHibernateの3を使用して、私のMVCプロジェクトイムで省バイト[]

public class PersonImage : PersistentObject 
{ 
    private string _contentType; 
    private byte[] _image; 

    private Person _person; 


    virtual public string ContentType 
    { 
     get { return _contentType; } 
     set 
     { 
      if (value != null && value.Length > 20) 
       throw new ArgumentOutOfRangeException("Invalid value for ContentType", value, value.ToString()); 
      _contentType = value; 
     } 
    } 

    virtual public byte[] Image 
    { 
     get { return _image; } 
     set { _image = value; } 
    } 

    } 



public class PersonImageMap : ClassMap<PersonImage> 
{ 
    public PersonImageMap() 
    { 
     Schema("personnel"); 

     Id(p => p.Id); 

     Map(p => p.Image) 
      .CustomSqlType("varbinary(MAX)") 
      .Not.Nullable(); 

     Map(p => p.ContentType) 
      .Not.Nullable(); 

     } 

}バイトで保存と読み込み画像に問題があります

問題は、私はこの画像が正しく保存できないと思うのですが、私はそれをロードすると画像の一部だけを見ることができるからです!

答えて

2

私はそれが長さ属性は、それは確かに3で動作するはずですので、私は正常な特性があるNHibernateは2.1を使用して画像(タブレットPCインクピクチャコントロールの内容を)マッピングされている。この場合には

Map(p => p.Image) 
      .Length(2147483647) 
      .CustomSqlType("varbinary(MAX)") 
      .Not.Nullable(); 
+0

ええ私はこの問題を抱えていました。問題を解決しました –

0

を定義する必要があります ましたデータベースフィールドはvarbinary(max)ですが、マッピングに追加のメソッドを追加しません。

これはそれです。私の疑念は、画像全体を保存して取り出すことですが、何とかUIで切り取られていることです。

+0

nh2で作業していたため、MAPで何の問題もなくなったため、nh3のバグだとはっきりしていますが(p => p.Image)、限り、この問題が存在するnh3への移行と私は長さの属性を追加して解決 – Adrakadabra

関連する問題