Чтобы быть ясным, я не имею в виду выполнение .Cast<T>
по результатам вызова EF.Есть ли способ вставить в `Where` часть запроса Entity Framework?
Я пытаюсь выполнить частичный поиск в поле чисел.
При создании SQL скрипта, легко преобразовать столбец в другой тип данных:
SELECT Id
FROM Employees
WHERE CAST(Id AS VARCHAR) LIKE '%95%';
Есть ли какие-либо эквивалент в запросе LINQ?
Я не могу изменить типы данных в сущности, которую я запрашиваю, а Id
был предназначен только для демонстрации.
Может быть, [это] (http://stackoverflow.com/questions/158634/doing-a-cast-within-a-linq-query) вопрос может помочь вам – LeeonTM
Вы можете посмотреть в класс 'SqlFunctions'. Он имеет ряд методов, которые напрямую поддерживаются поставщиком LINQ. Я не знаю, имеет ли он метод «Cast» или «Convert». IIRC, он имеет 'StringConvert' – Amy
Этот SQL-запрос на самом деле является ошибкой. Если вам нужно преобразовать Id, который не должен иметь делового значения, в строку *, чтобы вы могли выполнять текстовый поиск, что-то очень не так. По крайней мере, вам придется сканировать всю таблицу, так как поиск приклада и подстановочных знаков предотвращает использование индексов. –