Fehler-speichern Bild in SQL CE 4.0 mit ASP.NET MVC 3, Entity-Framework 4.1 Code Erste

Ich versuche zu speichern ein Bild in einer SQL Compact Edition (CE) - Datenbank.

Ich erkläre das Feld in meinem Studenten-Modell als:

[Column(TypeName = "image")]
public byte[] Photo { get; set; }

Die Datenbank ist erstellt mit dem image-Datentyp für die Spalte Photo wie man hier sehen kann:

Fehler-speichern Bild in SQL CE 4.0 mit ASP.NET MVC 3, Entity-Framework 4.1 Code Erste

Das problem ist:

Wenn ich die app starte und versuchen, speichern Sie ein Student mit einem Foto von 3 MB (zum Beispiel), bekomme ich eine exception:

validationError.ErrorMessage = "The field Photo must be a string or array type
with a maximum length of '4000'."

SQL Server CE unterstützt diese Datentypen. In diesem Vergleich zwischen SQL-Express und SQL Compact Edition (CE) haben wir, die SQL CE unterstützt Binäre (BLOB) - Speicherung durch die Verwendung von Bild-Daten geben.

Bild = Binärdaten Variabler Länge
mit einer maximalen Länge von 2^30-1
(1,073,741,823) bytes. Lagerung ist die
Länge des Wertes in bytes.

Bild sollte den job tun, denke ich.

Was mache ich hier falsch? Ist das ein bug?

Hinweis:

Ich habe auch versucht, das MaxLength-Daten Anmerkung:

[Column(TypeName = "image")]
[MaxLength(int.MaxValue)]
public byte[] Photo { get; set; } 

aber ich bekomme diese exception:

Binary column with MaxLength greater than 8000 is not supported.

Edit:

Fand ich die post über die Freisetzung von EF 4.1. Es hat folgenden Wortlaut:

Ändern der Standard-Länge für nicht-Schlüssel
string und binary-Spalten, die von '128'
zu 'Max'. SQL Compact nicht unterstützt
'Max' Spalten, beim laufen gegen
SQL Compact einen zusätzlichen Code First
Konvention legen Sie eine Standard-Länge
4000. Es gibt mehr details über
der Wechsel in einen aktuellen blog
post (link unten).

Gut gut gut... der einzige Weg, ich könnte es tätig war, zu tun, was beschrieben wird hier, das heißt, indem DbContext.Configuration.ValidateOnSaveEnabled = false. Dies ist ein workaround, als der Beitrag vermuten lässt.

  • wie groß ist dein Bild ?
  • es ist 3 MB.
Schreibe einen Kommentar