LinqTo实体中的日期部分相等

时间:2015-11-14 22:31:06

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

来自MSDN网站

  

Date属性,返回DateTime值,表示日期没有时间组件

这个方法

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迁移,这更容易恕我直言)

1 个答案:

答案 0 :(得分:2)

只需在两个日期使用DbFunctions.TruncateTime

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