我正在尝试使用LINQ to Entities构建搜索页面,但以下代码给出了关于l.t.e的运行时错误。无法识别'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;
答案 0 :(得分:89)
我猜想EF不支持带有StringComparison参数的StartsWith的重载。
它应该支持 StartsWith , EndsWith 和包含,所以也许您可以尝试:
dp.LastName.StartsWith(searchTerm)
或:
dp.LastName.ToLower().StartsWith(searchTerm)
然后确保searchTerm
也是小写的。