leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper())
|| s.StartDate.ToString().Contains(searchString));
这将导致错误..请帮助我,
错误:LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为商店表达式..
答案 0 :(得分:3)
区别对待每个案例
DateTime dateValue;
if (DateTime.TryParse(searchString, out dateValue))
{
leaves = leaves.Where(l => l.StartDate == dateValue);
}
else
{
leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper()));
}
答案 1 :(得分:1)
错误消息确切地说明了发生了什么:实体框架无法将表达式的那部分转换为SQL语句,这意味着您无法以这种方式进行搜索。
如果没有更多上下文,您最好的选择可能是按实际日期搜索(即搜索自特定日期以来或直到特定日期)。