Asp.net mvc 4 ';HttpPostedFileBase';没有定义键。定义此EntityType的键

Asp.net mvc 4 ';HttpPostedFileBase';没有定义键。定义此EntityType的键,asp.net-mvc-4,Asp.net Mvc 4,我已经创建了一个应用程序来上传数据库中的图像 这是我的模型 [Table("ImageGallery")] public class ImageGallery { [Key] public int ImageID { get; set; } public int ImageSize { get; set; } public string FileName { get; set; } public byte[] ImageData { get; set; }

我已经创建了一个应用程序来上传数据库中的图像 这是我的模型

[Table("ImageGallery")]
public class ImageGallery
{
    [Key]
    public int ImageID { get; set; }
    public int ImageSize { get; set; }
    public string FileName { get; set; }
    public byte[] ImageData { get; set; }
    [Required(ErrorMessage="Please select Image File")]
    public HttpPostedFileBase file { get; set; }
}
这是我的数据库模型

public class TPADB : DbContext
{
    public DbSet<ImageGallery> imagegallery { get; set; }
}
但它通过一个错误 “在模型生成过程中检测到一个或多个验证错误:

TPA.Models.HttpPostedFileBase::EntityType“HttpPostedFileBase”未定义键。请定义此EntityType的键。
HttpPostedFileBase:EntityType:EntitySet'HttpPostedFileBase'基于没有定义键的类型'HttpPostedFileBase'。

解决了这个问题,请对模型进行以下更改:

public partial class ImageGallery
    {
        [Key]
        public int ImageID { get; set; }
        public int ImageSize { get; set; }
        public string FileName { get; set; }
        public byte[] ImageData { get; set; }
        public string File 
        {
            get
            {
                string mimeType = "image/png";
                string base64 = Convert.ToBase64String(ImageData);
                return string.Format("data:{0},{1}", mimeType, base64);
            }
        }

    }
然后将此行添加到控制器:

         HttpPostedFileBase File = Request.Files[0];
用文件替换任何IG.File条目,例如:

         if (File.ContentLength > (2 * 1024 * 1024))
         HttpPostedFileBase File = Request.Files[0];
         if (File.ContentLength > (2 * 1024 * 1024))