问题与LINQ实体和String.StartsWith

我试图build立一个使用LINQ to Entities的search页面,但是下面的代码给了我一个关于lte没有识别'Boolean StartsWith()的运行时错误。 代码编译得很好。 我怎样才能解决这个问题比把StartsWith过滤出来存储到一个存储过程更好?

return from dp in dents.DirectoryPersonEntrySet where ((dp.LastName.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) || (dp.Department.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) || dp.Extension.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) select dp; 

我猜测EF不支持接受StringComparison参数的StartsWith的重载。

它应该支持StartsWithEndsWithContains ,所以也许你可以试试:

 dp.LastName.StartsWith(searchTerm) 

要么:

 dp.LastName.ToLower().StartsWith(searchTerm) 

然后确保searchTerm也是小写的。