Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用linq按给定日期获取数据_Vb.net - Fatal编程技术网

Vb.net 使用linq按给定日期获取数据

Vb.net 使用linq按给定日期获取数据,vb.net,Vb.net,我试图在我的MVCDBContext类中准备三个查询,但不幸的是,我在这方面做得太多了。我想问三个问题。当字段DTTM(日期时间)大于当前日期(从午夜开始)时,第一次查询仅获取数据。第二次查询相同,但来自两天前(从午夜开始),第三次查询来自3天前(从午夜开始) 我的数据库中的DTTM字段类型为:datetime,一些示例包括: 2015-07-01 00:43:49.757 2015-07-01 00:44:08.397 这就是我目前所做的,但并不好: Dim programlogcontex

我试图在我的MVCDBContext类中准备三个查询,但不幸的是,我在这方面做得太多了。我想问三个问题。当字段DTTM(日期时间)大于当前日期(从午夜开始)时,第一次查询仅获取数据。第二次查询相同,但来自两天前(从午夜开始),第三次查询来自3天前(从午夜开始)

我的数据库中的DTTM字段类型为:datetime,一些示例包括:

2015-07-01 00:43:49.757
2015-07-01 00:44:08.397
这就是我目前所做的,但并不好:

Dim programlogcontext As New ProgramLogContext
' Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog.ToList

Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog.
    Where(Function(f) f.DTTM > Date.Now.AddDays(-1)).
    ToList()
Return View(ProgramLog)

使用
Date.Today
代替
Date.Now
代替
DateTime.AddDays
这是不受支持的

Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog.
    Where(Function(f) f.DTTM > EntityFunctions.AddDays(Date.Today, -1).
    ToList()

“但是它不好”为什么?在我执行这个查询之后,我得到了这个错误消息,无论如何我也应该标记adddays(-1),但是从午夜开始,我不知道如何标记。错误消息:System.Data.Entity.dll中出现“System.NotSupportedException”类型的异常,但未在用户代码中处理其他信息:LINQ to Entities无法识别“System.DateTime AddDays(Double)”方法,并且无法将此方法转换为存储表达式。“好的,但如何定义从午夜开始算起的-1天或-2天这似乎可行,但现在仍然缺少如何获取今天的日期和午夜时间,因此如果今天是2015年7月2日,我希望f.DTTM>2015年7月2日00:00:00,前一天的第二个案例f.DTTM>2015年7月1日00:00:00。蒂姆,你能支持吗?@StackUser:我不明白你的要求。如果你想从今天的午夜开始,从昨天的午夜开始,你实际上想从昨天的午夜开始。那么:
Where(Function(f)f.DTTM>EntityFunctions.AddDays(Date.Today,-1)
?它还包括今天的所有记录。hi Tim,如果我使用这个:Where(Function(f)f.DTTM>EntityFunctions.AddDays(Date.Today,-1)然后我还得到昨天的数据,我需要的是两个查询,一个是今天从午夜到当前时间,另一个是从昨天午夜到当前时间,然后使用:
Where(Function(f)f.DTTM>=EntityFunctions.AddDays(Date.today,-1)和also f.DTTM=Date.today和also f.DTTM