Linq – convert system.data.linq.binary to byte[]

linqlinq-to-sql

I am storing bytes in a database table. When I retrieve it with Linq 2 sql I get the return type in system.data.linq.Binary.

I am not able to convert the system.data.linq.binary to byte array(byte[]).

How do I convert it?

///my datacontext

var db = new db();

//key is an value from user

var img = from i in db.images
          where i.id == key
          select i.data; 

the i.data is in linq.binary I want it to be in byte[].

I tried with (byte[])img but it did not work.

Best Answer

Have you tried calling ToArray() on i.data?

var img = from i in db.images
      where i.id == key
      select i.data.ToArray();

System.Data.Linq.Binary has a ToArray method just for that purpose.