У меня есть база данных, содержащая таблицу с колонкой «Изображение»:
Этот столбец на самом деле содержит длинную строку, закодированную в виде шестнадцатеричных байтов.
Мне нужно выбрать все записи, в которых строка, закодированная этим столбцом, содержит определенную подстроку. Псевдокод будет:
Select *
From SomeTable
Where dataColumnofTypeImage.ToString().Contains("somesubstring")
Я пытался сделать это в Linq (LinqPad), используя:
from z in Zanus
let p = z.Udata.ToArray() // z.Udata will be of type System.Linq.Binary so I want to make a byte array out of it...
where System.Text.ASCIIEncoding.ASCII.GetString(p).Contains("EXED")
select new
{
z.Idnr,
z.Udatum,
z.Uzeit,
z.Unr,
z.Uart,
z.Ubediener,
z.Uzugriff,
z.Ugr,
z.Uflags,
z.Usize,
z.Udata
}
Но это совсем не работает, говоря:
NotSupportedException: у метода 'Byte [] ToArray ()' нет поддерживаемого перевода в SQL.
Я просто не могу поверить, что невозможно проверить бинарный тип данных в предложении Where так же, как я могу проверить другой тип данных ...
Может кто-нибудь помочь мне здесь?