属性类型' System.Data.Linq.Binary'它无法映射到基本类型

时间:2014-12-06 05:45:46

标签: c# asp.net-mvc linq entity-framework binary

我正在将MVC 3 Linq-to-Sql应用程序转换为MVC 5 Entity Framework 6.1。我使用Model First导入我的表。 要在MS SQL服务器中保存二进制映像: 我使用了以下内容:

public EmptyResult UploadVisionImage (IEnumerable<HttpPostedFileBase> image, string desc)
        {
              var httpPostedFileBases = image as HttpPostedFileBase[] ?? image.ToArray();
        if (image == null || !httpPostedFileBases.Any())
            return new EmptyResult();
        HttpPostedFileBase file = httpPostedFileBases.First();
        if (file.ContentLength > 0)
            {
            var vi = new VisionImage();
            vi.Description = desc;
            vi.FileName = file.FileName.Split('\\').Last();
            vi.ContentType = file.ContentType;
            // Save the full size image.
            var tempImage = new byte[file.ContentLength].ToArray();

            file.InputStream.Read(tempImage, 0, file.ContentLength);
            vi.ImageData = new Binary(tempImage);
            // Create and save the thumbnail image.
            file.InputStream.Seek(0, SeekOrigin.Begin);
            int thumbnailSize = Config.Current.ThumbnailSize;
            vi.ThumbnailImageData = new Binary(Thumbnail.CreateThumbnail(file.InputStream, thumbnailSize, thumbnailSize));
            // Commit changes.
            SelectedVisit.VisionImage.Add(vi);
            _visitRepository.Save();
            }
        return new EmptyResult();
        }

我收到此错误:

cannot convert system.data.linq.binary to target type byte[]

我在旧应用程序中检查了模型,ImageData和ThunbnailImageData都是Binary,但在EF模型中它们是byte [];当我手动将它们更改为二进制时,我得到上述错误。两者都作为&#34; image&#34;存储在数据库中,我也尝试过varbinary,模型仍将它们显示为byte []。 非常感谢您的建议。

0 个答案:

没有答案