2011-01-18 7 views
0
ORM로 NHibernate에 3를 사용하여 내 MVC 프로젝트 메신저에서

,하지만 난 그 유형} 바이트 []3가 절약 바이트에 문제가 NHibernate에 않습니다 []

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

난 길이 속성은 I 성공적 있으므로 확실히 특성은 3에서 작동해야 NHibernate에 2.1를 사용하여 이미지 (태블릿 PC InkPicture 제어 내용)을 매핑 한

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

예이 문제가 있었고 문제가 해결되지 않았습니다. –

0

이 경우에 정의한다 찾았 바이트 배열과 데이터베이스 필드는 varbinary (max)이지만 매핑에 추가 메서드를 추가하지 않습니다.

Map(p => p.Image); 

그게 전부입니다. 내 의구심은 당신이 전체 이미지를 저장하고 검색하고 있지만 어떻게 든 UI에서 잘려나 간다는 것이다.

+0

나는 nh2로 작업했기 때문에 nh3의 버그가 있으며 MAP (p => p.Image)로는 문제가 없었으므로 이 문제가 존재하고 길이 속성을 추가하여 해결했습니다. – Adrakadabra