Eu estava tendo o mesmo problema, ou seja, a primeira vez que a imagem foi salva corretamente no lado do banco de dados, mas se posteriormente a validação falhasse e eu tentasse salvar a imagem novamente após inserir dados válidos, obteria
0x na coluna da imagem. Para resolver isso, fiz o que @Ann L.
disse:
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);
}
}