2010-12-31 3 views
2

Ich probiere die EF 4.0 aus und benutze den ersten Ansatz von Model. Ich möchte Bilder in der Datenbank speichern und bin mir nicht sicher, welcher Typ für den Skalar in der Entität am besten ist.
Ich habe es derzeit (der Bild-Skalartyp) Setup als Binärdatei. Von dem, was ich gelesen habe, ist die beste Möglichkeit, das Bild in der DB zu speichern, ein Byte []. Also nehme ich an, dass binär der richtige Weg ist. Wenn es einen besseren Weg gibt, würde ich wechseln.So speichern Sie ein Bild in einer db mit EF 4.0 mit dem ersten Ansatz von Model. MVC2

alt text

In meinem Controller habe ich:

//file from client to store in the db 
HttpPostedFileBase file = Request.Files[inputTagName]; 
if (file.ContentLength > 0) 
{ 
    keyToAdd.Image = new byte[file.ContentLength]; 
    file.InputStream.Write(keyToAdd.Image, 0, file.ContentLength); 
} 

Dies baut in Ordnung, aber wenn ich es laufen lasse, bekomme ich eine Ausnahme, den Strom zu keyToAdd.Image zu schreiben. Die Ausnahme ist etwas wie: Methode existiert nicht.

Irgendwelche Ideen? Beachten Sie, dass bei Verwendung eines ersten Ansatzes des EF 4.0-Modells nur Int16, Int32, Double, String, Dezimal, Binär, Byte, DateTime, Double, Single und SByte als verfügbare Typen zur Verfügung stehen. Danke

Antwort

1

Anstelle von Schreiben sollte ich gelesen haben. Ich bin immer noch interessiert, ob es eine bessere Möglichkeit gibt, den Bildstrom zu speichern.

Es war file.InputStream. Schreiben Sie (tmpBytes, 0, file.ContentLength);

byte[] tmpBytes = new byte[file.ContentLength]; 
file.InputStream.Read(tmpBytes, 0, file.ContentLength); 
keyToAdd.Image = tmpBytes; 
Verwandte Themen