忽略linq查询中DateTime的时间部分

时间:2017-06-26 20:34:36

标签: .net linq sorting datetime

我试图排序"组织"在DateAdded的日期部分(类型为DateTime)而忽略时间。在主要排序之后,我想按组织的名称排序。

这是我目前所拥有的,但它也会根据时间进行排序:

IQueryable<Organization> organizations = from m in context.Organizations
    orderby m.OrgName ascending
    orderby m.DateAdded ascending
    select m;

以上几乎可以使用,但它也按时排序。

2 个答案:

答案 0 :(得分:3)

IQueryable<Organization> organizations = context.Organizations
    .Orderby( m => m.DateAdded.Date )
    .ThenBy( m => m.OrgName );

我看到您正在使用IQueryable提示您正在使用实体框架(Linq-to-Entities),其中(我相信)DateTime.Date无法正常工作,但您可以使用EntityFunctions.TruncateTime

using System.Data.Entity;

IQueryable<Organization> organizations = context.Organizations
    .Orderby( m => EntityFunctions.TruncateTime( m.DateAdded ) )
    .ThenBy( m => m.OrgName );

答案 1 :(得分:0)

如果它的EntityFramework可以使用

日期

上的EntityFunctions.TruncateTime