2014-07-10 5 views
0

Linq to SQL asp.net에서 특정 이미지를 데이터베이스에서 가져 와서 aspx 페이지에 표시하려고합니다. 반환 된 형식을 코드에서 "var"로 선언했습니다. 그래서 이미지를 가져온 후에 이미지를 var 타입에 할당합니다.'system.linq.iqueryable <byte[]>'을 'byte []'로 변환하는 방법

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'형식을 변환 할 수 없습니다.

'system.linq.iqueryable type을 byte []로 변환하려면 어떻게해야합니까?

+0

당신이 LINQ의 SingleOrDefault 선택기를 사용한다, 그래서 당신은 단지 하나의 객체를 얻을 수 있습니다

귀하의 응용 프로그램에 대해 원하는 동작에 따라 Single, SingleOrDefault, First, 또는 FirstOrDeault 사용할 수 IQueryable이 아닙니다. SingleOrDefault <>에서는 캐스팅을 피할 수 있도록 유형을 지정할 수 있습니다. – Carlos487

답변

3

byte[]이 아닌 byte[] 컬렉션을 선택하는 중 문제가 발생했습니다.

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); 
} 
+0

오류가 사라지고 작동합니다. 고맙습니다! – perlynsparks

+0

죄송합니다 저스틴, 이것에 대해 제발 도와 주실 수 있습니까? http://stackoverflow.com/questions/24699751/how-to-return-the-query-result-as-a-specific-object-type-in-linq – perlynsparks

관련 문제