回答

收藏

LINQ中的日期差异逻辑

技术问答 技术问答 265 人阅读 | 0 人回复 | 2023-09-12

我试图从两个不同的数据库表访问数据,然后使用它们C#中的LINQ将它们连接到两个字段中。我相信我有一个合乎逻辑的整体工作方法。我遇到的一些问题是,我想在连接两个表之前过滤掉这两个表中的数据,因为这些表中的数据太多,会导致崩溃。
* X; H4 v# @. t% p0 o6 a主要问题是,对于其中一个表,我只需要提取今天有时间戳(列)值的数据。时间戳值的类型是System.DateTime?。
) r* _: D/ h3 e我尝试了几种不同的方法:) [7 W- S9 `! G- o7 Z5 J
                                DateTime? currentDate = System.DateTime.Now;        var second_data = (from b in this.database.table            where EntityFunctions.DiffDays(b.timeStamp.Value,currentDate) ==          select b);我认为这不起作用,因为数据库中没有函数来处理它。内部例外:’{“ FUNCTION数据库。DiffDays不存在5 ^8 E: O, s3 [, R% o! @6 a- H
                                var second_data = (from b in this.database.table            where b => b.timeStamp.Value.Date == DateTime.Now.Date            select b);因为LINQ to Entities不支持’指定类型的成员’Date’。实体成员和实体导航属性仅支持初始化程序。
! e/ c$ `% k2 i0 j/ q; F                                var second_data =            this.database.table.Where(sd => sd.timeStamp.Value.Date == DateTime.Now.Date);但这又是因为使用.Date而失败。9 W" X! P9 F4 Y" u
不幸的是,由于我没有足够的内存来保存所有的数据,我不可能先提取所有的数据,然后逻辑其运行日期。如果有人能对我如何解决这个问题提供任何意见,我将非常感激。非常感谢。+ {/ i& j! M- G) V! V6 R* W
                                                                6 {1 [% a! p) M. Q/ E" \# n7 M( x
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则