问题与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的重载。
它应该支持StartsWith , EndsWith和Contains ,所以也许你可以试试:
dp.LastName.StartsWith(searchTerm)
要么:
dp.LastName.ToLower().StartsWith(searchTerm)
然后确保searchTerm
也是小写的。