使用entity framework6从SQL Server保存并检索图像(二进制)

我正在尝试将位图图像保存到数据库

Bitmap map = new Bitmap(pictureBoxMetroMap.Size.Width, pictureBoxMetroMap.Size.Height); 

我使用数据typesbinary在数据库中创build了一个列imgcontent ,但我的问题是如何将此bitmap (地图)转换为二进制数据?

我怎样才能从数据库检索数据?

我GOOGLE了,我发现这样的事情,但它不工作:

 byte[] arr; ImageConverter converter = new ImageConverter(); arr = (byte[])converter.ConvertTo(map, typeof(byte[])); 

将图像转换为byte[]并将其存储在数据库中。


将此列添加到您的模型中:

 public byte[] Content { get; set; } 

然后将你的图像转换为一个字节数组,并存储,就像你会有其他的数据:

 public byte[] imageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } public Image byteArrayToImage(byte[] byteArrayIn) { MemoryStream ms = new MemoryStream(byteArrayIn); Image returnImage = Image.FromStream(ms); return returnImage; } 

来源: 将图像转换为字节数组最快的方法

 var image = new ImageEntity(){ Content = imageToByteArray(image) } _Context.Images.Add(image); _Context.SaveChanges(); 

当你想得到图像,从数据库中获取字节数组,并使用byteArrayToImage ,并使用byteArrayToImage做你想做的

byte[]变大时停止工作。 它将适用于100Mb以下的文件