2011-11-22 139 views
1

错误我使用LINQPad来运行下面的查询:LINQ到SQL查询与StartsWith

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: Only arguments that can be evaluated on the client are supported for the String.StartsWith method.

我不知道如何去关于纠正这个错误。我需要得到每个Program,WbsNumber开始WbsNumberProgramWbsNumbers如果有帮助。

enter image description here

回答

6

试试这个:

where SqlMethods.Like(w.DisplayString, ds + "%") 
+0

工作!谢谢。 –