在Linq to SQL asp.net中,我想从数据库中获取特定图像并显示在aspx页面上。我声明返回类型为" var"在代码上。因此,在获取图像后,它会将图像分配给var类型。
以下是代码:
var db = from c in context.Images
where c.imageId == iID
select c.imageData;
return new MemoryStream((byte[])db); ---->> this line of code gives error
它给出了这个编译错误:无法转换类型' system.linq.iqueryable'到' byte []'。
如何将&system; system.linq.iqueryable类型转换为byte []?
答案 0 :(得分:3)
您的问题是,您选择的是byte[]
而非单byte[]
的集合。
根据您对应用程序的行为,您可以使用Single
,SingleOrDefault
,First
或FirstOrDeault
:
var image = context.Images.FirstOrDefault(i => i.imageId == ID);
if(image == null)
{
// Handle the case where no image was found.
//
// First or Single would throw Exceptions in this case
// if that's what you want.
}
else
{
return new MemoryStream(image.imageData);
}
答案 1 :(得分:1)
请尝试在下面为我完成这项工作
var db = (context.Images.FirstOrDefault(i => i.imageId == ID).ImageData