2011-12-08 11 views
8

Próbuję zrobić migawkę z kontrolki Map jako WritableBitmap, przekonwertować ją na tablicę bajtów i zapisać w lokalnym DB. Działa dobrze (mogę przekonwertować tablicę bajtów z powrotem na obraz), dopóki nie prześlę zmian do DB. W tym momencie zgłasza wyjątek "Obcięcie tablicy bajtowej na długość 8000". Nie znalazłem żadnej dokumentacji dotyczącej ograniczenia tablicy bajtowej. Czy ktoś wie, jak zwiększyć limit 8000? Moja bajt tablicy jest członkiem mojego modelu:Lokalna baza danych zgłasza obcięcie tablicy bajtów do długości 8000 wyjątków

private byte[] _locationImage; 
[Column] 
public byte[] LocationImage 
{ 
    get { return _locationImage; } 
    set 
    { 
     if (_locationImage != value) 
     { 
     NotifyPropertyChanging("LocationImage"); 
     _locationImage = value; 
     NotifyPropertyChanged("LocationImage"); 
     } 
    } 
} 
+0

Jakiej "bazy danych" używasz? –

+0

Czy pole zostało kiedykolwiek zdefiniowane jako varbinary (8000) po stronie DB? – UnhandledExcepSean

Odpowiedz

11

Jeśli spojrzeć na the SQL Compact docs, zobaczysz, że pole binarne lub varbinary może być co najwyżej 8000 bajtów, tak że mówi mi, że kolumna byte[] zostaje odwzorowany do varbinary. Aby zmusić go do przechowywania większych danych, musisz użyć silnika, aby użyć pola typu image. Może to być tak proste, jak aktualizacja atrybutu Column (nietestowany):

[Column(DbType="image")] 
public byte[] LocationImage { ... } 
+0

VARBINARY (MAX) nie jest dostępny w SQL Compact? – UnhandledExcepSean

+1

Nie, varbinary (max) nie jest. – ctacke

+0

Przepraszamy za spóźnioną odpowiedź. Właśnie tego szukałem. Nie myślałem, aby spojrzeć na dokumenty SQL CE. Dzięki. –

Powiązane problemy