У меня есть следующий оператор LINQ (stationId - это int, а версия - байтовый массив):
var foundStation = (from wd in _Context.AssignmentWizardDatas
from station in wd.AssignmentWizardStationDatas
where station.Id == stationId
where station.Version.SequenceEqual(version)
select station).SingleOrDefault();
При выполнении приведенного выше кода я сталкиваюсь со следующей ошибкой:
LINQ to Entities не распознает метод «Boolean SequenceEqual [Byte] (System.Collections.Generic.IEnumerable 1[System.Byte], System.Collections.Generic.IEnumerable
1 [System.Byte])», и этот метод нельзя преобразовать в выражение хранилища.
После небольшого прочтения я понял, что проблема в том, что LINQ не может преобразовать вызов метода SequenceEqual в эквивалент SQL (я думаю, в любом случае).Кто-нибудь знает обходное решение для этого?Или, может быть, мог бы указать мне правильное направление при попытке использовать байтовые массивы с запросами LINQ, я не смог найти существующий вопрос, конкретно связанный с байтовыми массивами.
Заранее спасибо.
РЕДАКТИРОВАТЬ : Используя сообщение Яни, это был последний код, используемый для устранения этой ошибки:
//eager execution of the linq query to find the stations
var foundStation = (from wd in _Context.AssignmentWizardDatas
from station in wd.AssignmentWizardStationDatas
where station.Id == stationId
select station).ToList();
//finding the result in memory
var result = (from f in foundStation
where f.Version.SequenceEqual(version)
select f).SingleOrDefault();