实体框架 将日期时间转换为字符串

本文关键字:转换 字符串 时间 日期 框架 实体 | 更新日期: 2023-09-27 18:21:09

leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper())
                                   || s.StartDate.ToString().Contains(searchString));     

这将导致错误。请帮助我,

错误:LINQ to Entities 无法识别方法"System.String ToString(("方法,并且此方法无法转换为存储表达式。

实体框架 将日期时间转换为字符串

以不同的方式处理每种情况

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()));
}

错误消息准确地说明了正在发生的事情:实体框架无法将表达式的该部分转换为 SQL 语句,这意味着您无法以这种方式进行搜索。

如果没有更多上下文,最好的选择可能是按实际日期搜索(即搜索自某个日期以来或直到某个日期(。