【问题标题】:Entity Framework Convert DateTime to string实体框架将日期时间转换为字符串
【发布时间】:2012-01-24 06:36:02
【问题描述】:
leaves = leaves.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper())
                                   || s.StartDate.ToString().Contains(searchString));     

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

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

【问题讨论】:

    标签: c# linq entity-framework


    【解决方案1】:

    以不同的方式对待每个案例

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

    【讨论】:

    • 它工作正常只是缺少这个,离开=离开.Where(s => s.Employee.Name.ToUpper().Contains(searchString.ToUpper()));
    • @user1134291 很抱歉缺少那个部分。更新了我的答案。
    【解决方案2】:

    错误消息准确地说明了发生了什么:Entity Framework 无法将表达式的该部分转换为 SQL 语句,这意味着您无法通过这种方式进行搜索。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2015-09-17
      • 1970-01-01
      • 2020-04-25
      相关资源
      最近更新 更多