Ошибка запроса Linq-to-SQL с StartsWith - PullRequest
2 голосов
/ 22 ноября 2011

Я использую LINQPad для запуска следующего запроса:

var pds = (from p in Projects
            group p by p.FiscalYearVariables.FiscalYear into grouped
            where grouped.Count() > 0
            select new { 
                fiscalYear = grouped.Key,
                projectDetails = grouped.SelectMany(a=>a.ProjectDetails),
                Programs = (from pwbs in Programs.SelectMany(a =>a.ProgramWbsNumbers)
                            let ds = pwbs.WbsNumbers.DisplayString
                            where pwbs.Programs.IsActive
                            && (from w in WbsNumbers
                                where w.DisplayString.StartsWith(ds)
                                select w).Any()
                            select pwbs.Programs)
            });

            pds.Dump();

И получаю ошибку:

NotSupportedException: поддерживаются только аргументы, которые могут быть оценены на клиентедля метода String.StartsWith.

Я не уверен, как исправить эту ошибку.Мне нужно получить каждый Program, где WbsNumber начинается с WbsNumber, содержащегося в ProgramWbsNumbers, если это помогает.

enter image description here

1 Ответ

8 голосов
/ 22 ноября 2011

Попробуйте это:

where SqlMethods.Like(w.DisplayString, ds + "%")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...