【发布时间】:2020-03-14 19:59:26
【问题描述】:
我有以下代码,它会截断时间:
// does this already exist?
var seekScan = (from s in aDb.Item_Scan_Event
where s.item_detail_id == th_piece_id &&
s.scan_type == scantype &&
DbFunctions.TruncateTime(s.scan_datetime) == dt_scan.s.ScanDatetime.Date
select s).FirstOrDefault();
我需要的是让它比较 dateTime 包括 HH:mm
我尝试过使用字符串比较之类的简单方法,但您不能在 Linq-to-Entities 中这样做:
var seekScan = (from s in aDb.Item_Scan_Event
where s.item_detail_id == th_piece_id &&
s.scan_type == scantype &&
s.scan_datetime.Value.ToString("MM/dd/yyyy HH:mm") == dt_scan.s.ScanDatetime.ToString("MM/dd/yyyy HH:mm")
select s).FirstOrDefault();
我得到的错误是:
LINQ to Entities 无法识别方法 'System.String ToString(System.String)' 方法,并且该方法无法转换为存储表达式。'
【问题讨论】:
-
你不能用没有秒和毫秒的日期定义一个局部变量并在你的查询中使用它们吗?
-
这是导致问题的比较左侧的部分(数据库部分)。我不知道怎么做你的建议?
-
我不确定你到底在暗示什么,对不起。我明白了这个概念,但我想不出一种方法来编码?
-
是的,我的错,想得不够远:/
-
我认为这与 CreateTime 或其他东西有关....仍在努力。
标签: c# entity-framework-6