不带时间的日期从和到过滤器c#mvc

不带时间的日期从和到过滤器c#mvc,c#,datetime,C#,Datetime,我在mvc应用程序中有2个输入: date_from和date_to(这是仅在视图中显示的日期,而不是DateTime) 当我调用一个服务以获得由我调用的那些值过滤的结果时 Result result = client.GetResults(from = date_from, to = date_to); GetResults中的逻辑在EF5上执行linq,如下所示: context.Results.Where(r=> r.date >= date_from &&

我在mvc应用程序中有2个输入: date_from和date_to(这是仅在视图中显示的日期,而不是DateTime)

当我调用一个服务以获得由我调用的那些值过滤的结果时

Result result = client.GetResults(from = date_from, to = date_to);
GetResults中的逻辑在EF5上执行linq,如下所示:

context.Results.Where(r=> r.date >= date_from && r.date <= date_to);

context.Results.Where(r=>r.date>=date\u from&&r.date最简单的方法是添加一天,但将上限更改为独占:

var lowerBoundInclusive = date_from;
var upperBoundExclusive = date_to.AddDays(1);
context.Results.Where(r=> r.date >= lowerBoundInclusive && 
                          r.date < upperBoundExclusive);

为什么你认为这不是一个好的解决方案?为什么你认为这不是一个好的解决方案?我想这是完全可以接受的。@Moo Juice看起来用这种方式结束一天有点麻烦,也许我错了?这比添加/删除更好-尤其是在某个时髦的日子,他们决定提高日期时间分辨率:)正如我在笔记上所说,服务使用时间部分逻辑。执行此操作将使用时间部分用DateTime中断请求。此外,任何时间不同于0:0:0的输入都可能返回错误的结果。@Bart:老实说,你的问题还很不清楚。您已经说过,
date\u from
date\u to
仅是日期,所以它们的时间可能已经是00:00:00了。我希望这可以很好地与EF一起工作,这是我的代码影响的唯一部分。我并不是建议改变任何其他逻辑。@JonSkeet在视图中只显示日期。但这并不是我称之为GetResults方法的唯一视图,有时时间很重要,而其他的则不重要。对不起,如果不清楚的话(英语不是我的母语),我试着把笔记和所有的解释弄清楚,不知道如何把它弄清楚。@Bart:你是说你想用同样的方法来做不同的事情,这取决于你是只传递日期还是传递日期和时间?别这样!把它分成两种不同的方法。(或者在处理日期时,将“添加一天”部分放在呼叫者中。)
// This is *inclusive* of both bounds
public XYZ GetResultsByDate(DateTime fromDate, DateTime toDate)
{
    return GetResultsByDateAndTime(fromDate.Date, toDate.Date.AddDays(1));
}

// This is *exclusive* of the upper bound
public XYZ GetResultsByDateAndTime(DateTime from, DateTime to)
{
    var results = context.Results.Where(r=> r.date >= from && r.date < to);
    ...
}