Asp.net mvc 3 从数据库检索屏幕截图时出现问题
我有一堆截图和一些截图元数据,我试图在ASP.NET MVC 3 web应用程序中显示,我试图从数据库中检索数据,但出现以下错误: LINQ to实体无法识别方法“System.Drawing.Image” ByteArrayToImage(Byte[])方法,并且无法转换此方法 转换为存储表达式 这是我的密码:Asp.net mvc 3 从数据库检索屏幕截图时出现问题,asp.net-mvc-3,c#-4.0,orm,Asp.net Mvc 3,C# 4.0,Orm,我有一堆截图和一些截图元数据,我试图在ASP.NET MVC 3 web应用程序中显示,我试图从数据库中检索数据,但出现以下错误: LINQ to实体无法识别方法“System.Drawing.Image” ByteArrayToImage(Byte[])方法,并且无法转换此方法 转换为存储表达式 这是我的密码: var screenshotData = (from screenshots in db.screenshots w
var screenshotData = (from screenshots in db.screenshots
where screenshots.projects_ID == projectID
select new ImageInformation
{
ID = screenshots.id,
Language = screenshots.language,
Screenshot = Utility.ByteArrayToImage(screenshots.screen_shot),
ProjectID = screenshots.projects_ID
});
foreach (ImageInformation info in screenshotData)
{
this.Add(info);
}
ImageInformation只是一个简单的类,它包含存储的信息的定义(ID、语言、屏幕截图、ProjectID)
下面是我的ByteArrayToImage函数:
public static Image ByteArrayToImage(byte[] byteArrayIn)
{
using (MemoryStream ms = new MemoryStream(byteArrayIn))
{
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
有人能告诉我为什么我在代码运行时收到这个错误吗
谢谢。我认为这是因为,使用LINQtoEntities,代码被转换为服务器端查询,在这种情况下它不能这样做。我不认为可以将这样的客户端代码直接与L2E混合使用
我怀疑在从数据库中检索数据之后,您将不得不执行从字节->图像的转换,这是一个独特的步骤 无法在LINQ to实体查询中执行此功能。。。一种选择:
1) 在您正在实例化的对象(ImageInformation)上有一个byte[]属性,并将其中的数据与另一个属性一起复制,以便从此ImageInformation对象读取图像。奇怪的是,我认为这与LINQ to SQL一起工作。。无论如何,我会添加一个工作环境,谢谢!