Jag hade samma problem, det vill säga första gången bilden sparades korrekt på databassidan, men om efterföljande validering misslyckades och jag sedan försökte spara bilden igen efter att ha angett giltig data skulle jag få 0x i bildkolumnen. För att lösa det gjorde jag vad @Ann L.
sa:
byte[] photo = null;
if(model.Photo != null)
{
var stream = model.Photo.InputStream;
stream.Position = 0;
using(BinaryReader br = new BinaryReader(model.Photo.InputStream))
{
photo = br.ReadBytes(model.Photo.ContentLength);
}
}