Как выполнить ObjectQuery <T> - PullRequest
       48

Как выполнить ObjectQuery <T>

0 голосов
/ 02 сентября 2010

Linq to Entities использует ObjectQuery, который реализует IQueryable. Я обычно использую методы IQueryable для фильтрации своих данных, но сегодня мне нужно было создать специальный оператор LIKE. Фреймворк продолжает думать, что он умный и «ускользает» от моего подстановочного знака «%» с тильдой, что сделало мое специальное утверждение LIKE недействительным. Поэтому, покопавшись, я обнаружил, что ObjectQuery имеет перегрузку для метода Where, которая позволяет передавать строку вместе с ObjectParameters. Я сделал это, но он не выполняется как IQueryable. Когда я запускаю приложение, после нажатия этого кода ничего не происходит. Никаких ошибок и обращений к базе данных тоже нет, поэтому я знаю, что созданный мной запрос фактически не выполняется.

Как мне казнить этого щенка?

public IQueryable<tbl_Path> GetPathsByWildCardSearch(string searchTerm)
{
    return this.ObjectContext.tbl_Path
        .Where("FullPath NOT LIKE @p0 and FullPath LIKE @p1", 
            new ObjectParameter("p0", string.Format("%{0}%{1}%", searchTerm, tbl_Path.PathSeperator)),
            new ObjectParameter("p1", string.Format("%{0}%", searchTerm)));
}

1 Ответ

0 голосов
/ 03 сентября 2010

;) наконец-то увидел, что на нем есть метод Execute ().

...