c# - LinqTo 实体中的日期部分相等

标签 c# .net entity-framework datetime linq-to-entities

来自 MSDN 站点

The Date property, which returns a DateTime value that represents a date without its time component

这个方法好

public List<int> GetSymbolIdsFromProjectionsForDate(DateTime testDate)
{
    var date = testDate.Date;
    var db = _projContext;
    List<int> symbList;
    using (db)
    {
         symbList =
       db.CommodityProjections.Where(e => DbFunctions.TruncateTime(e.ProjectionDate) == date)
                              .Select(e => e.CommoditySymbolId)
                              .ToList();
    }
    return symbList;
}

列表计数始终为零。因此,在调试时,我发现日期变量实际上不仅仅是日期时间的日期部分,如图所示 日期 = {11/14/2015 12:00:00 AM}

WTF 那么如何使用 SQL Server 比较日期呢? (我刚刚从 MySql 迁移,恕我直言,这更容易)

最佳答案

只需在两个日期上使用DbFunctions.TruncateTime即可。

.Where(e => DbFunctions.TruncateTime(e.ProjectionDate) == DbFunctions.TruncateTime(testDate)

关于c# - LinqTo 实体中的日期部分相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714169/

相关文章:

.net - 从托管 powershell 中的脚本或命令检索参数

c# - LINQ to Entities 无法识别嵌套选择中的“System.Linq.IQueryable”方法

asp.net-mvc - 如何为 MVC4 和自定义成员(member)提供配置 Ninject?

javascript - 当与 OnServerClick ASP.net 一起使用时,Bootstrap 模式在按钮单击时关闭

c# - 将带点和逗号的数字转换为 double 会失败

winforms 中的 C# listview 不显示添加的项目

c# - 你能启动一个应用程序 C# 所以它不需要 .NET

c# - 程序崩溃后如何挂起所有线程?

c# - 在 C# 中对小代码示例进行基准测试,可以改进此实现吗?

c# - 使用存储库模式 MVC 5 和 EF 6 的工作单元