使用StartsWith进行Linq-to-sql查询错误

Mik*_*den 2 sql linq linq-to-sql

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

NotSupportedException:String.StartsWith方法仅支持可在客户端上计算的参数.

我不知道如何纠正这个错误.我需要得到每个Program地方的WbsNumber开头的WbsNumber包含内ProgramWbsNumbers是否有帮助.

在此输入图像描述

Mag*_*nus 8

试试这个:

where SqlMethods.Like(w.DisplayString, ds + "%")
Run Code Online (Sandbox Code Playgroud)