实体框架 将日期时间转换为字符串
本文关键字:转换 字符串 时间 日期 框架 实体 | 更新日期: 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 语句,这意味着您无法以这种方式进行搜索。
如果没有更多上下文,最好的选择可能是按实际日期搜索(即搜索自某个日期以来或直到某个日期(。