zoukankan      html  css  js  c++  java
  • EF中无法使用时间转字符串

    场景:

    查询条件需要使用到时间类型,且需要特殊格式化,例:ToString("yyyy-MM-dd");即,在需要使用时间进行like方式处理时;

    此时,用如下方式:

    var q = from c in context.HasDateModels where c.UserDate.ToString("yyyy-MM-dd").Contains("20") select c; 

    进行查询使用;

    提示:LINQ to Entities 不识别方法"System.String ToString(System.String)",因此该方法无法转换为存储表达式

    即:Linq to Entities不支持带参数的时间字符串转换

     

    解决方法:

    以下方法只适用于数据量较小的情况,同时建议,使用此法,若有其他条件,建议先进行一次Linq to Entities筛选后再处理以下情况;

    var q = from c in context.HasDateModels.AsEnumerable() where c.UserDate.ToString("yyyy-MM-dd").Contains("20") select c; 

    原理:利用AsEnumerable将使用方式转化为Linq to Object,即将数据查询至内存后再进行筛选

  • 相关阅读:
    Hash表解题之大数据查找
    数据结构与算法之字典树解题
    oracle存储过程学习
    mq常见问题
    通过反射构造对象
    平衡二叉树
    LinkList源码
    ArrayList源码
    JVM参数调优
    MyBatis源码图
  • 原文地址:https://www.cnblogs.com/huaxia283611/p/efdatetostringerror.html
Copyright © 2011-2022 走看看