Bir resmi bir SQL Compact Edition (CE) veritabanında depolamaya/kaydetmeye çalışıyorum.Görüntüyü ASP.NET MVC 3 ve Entity Framework 4.1 ile SQL CE 4.0'da saklarken Hata İlk
ben olarak benim Öğrenci modelinde alanını beyan:
[Column(TypeName = "image")]
public byte[] Photo { get; set; }
burada görülebileceği gibi veritabanı Fotoğraf sütun için görüntü veri türü ile oluşturulur:
sorun:
Uygulamayı çalıştırdığımda ve 3 MB Fotoğraflı bir öğrenciyi kaydetmeyi denediğimde (örneğin), bir istisna alıyorum:
SQL Server CE, bu Data Types desteklemektedir. SQL Express ve SQL Compact Edition (CE) arasındaki bu comparison'da, bu SQL CE, görüntü veri türü kullanılarak İkili (BLOB) depolamayı destekliyor. 2^30-1 (1.073.741.823) bayt uzunluğu ileResim = Değişken uzunlukta ikili veri . Depolama, bayt cinsinden değerin uzunluğudur.
Görüntü, bence işi yapmalı.
Burada yanlış olan ne yapıyorum? Bu bir hata mı?
Not: Ben de MaxLength veri ek açıklama çalıştı
:
Binary column with MaxLength greater than 8000 is not supported.
Düzenleme::
Ben post bulundu
[Column(TypeName = "image")]
[MaxLength(int.MaxValue)]
public byte[] Photo { get; set; }
ama bu istisna olsun sürüm hakkında EF 4.1. ‘Max’ ‘128’ den anahtar olmayan dize ve ikili sütunlar için varsayılan uzunluğu
Eh iyi iyi ... almak o çalışma tek yolu bu,Değişikliği: Bu aşağıdaki sahiptir. SQL Compact 'Max' sütunları desteklemez, (linki varsayılan bir uzunluk 4000 değişikliği son blog yazı dahil hakkında daha fazla detay bulunmaktadır ayarlayacaktır SQL Compact karşı ek bir kod İlk kongre çalıştırırken'un altında).
DbContext.Configuration.ValidateOnSaveEnabled = false
kuruyor,
here açıklanan şeyi yapıyordum. Bu post önerileri gibi bir çözümdür.
resminizin ne kadar büyük iç bağlam sınıfa ekleyebilir? –
@Alexandre: 3 MB. –