C# 比较两个日期时间变量
我想比较两个日期时间变量。我在旧项目的代码中有以下内容:C# 比较两个日期时间变量,c#,.net,linq-to-sql,C#,.net,Linq To Sql,我想比较两个日期时间变量。我在旧项目的代码中有以下内容: public int GetTotal(DateTime d) { using (rdbyDataContext2 Context = new rdbyDataContext2()) { var q1 = from qu in Context.SearchRequests where q
public int GetTotal(DateTime d)
{
using (rdbyDataContext2 Context = new rdbyDataContext2())
{
var q1 = from qu in Context.SearchRequests
where
qu.search_date.Year.Equals(d.Year) && qu.search_date.Month.Equals(d.Month) && qu.search_date.Day.Equals(d.Day)
orderby qu.user_name
select qu;
return q1.Count();
}
}
所以,我想更快地比较DateTime变量。如何实现它?如果您只想比较日期部分(而不是时间):
如果您只想比较日期而不想比较一天中的时间,则应执行以下操作:
public int GetTotal(DateTime d)
{
using (rdbyDataContext2 Context = new rdbyDataContext2())
{
var q1 = from qu in Context.SearchRequests
where
qu.search_date.Date = d.Date
orderby qu.user_name
select qu;
return q1.Count();
}
}
DateTime.Date
由LINQ to SQL正确处理。当前的实现有什么问题?基于此,我认为EF不会处理DateTime.Date
,假设OP使用EF。在LINQ to SQL中,它是受支持的。它不是EF。这是林克对我的感谢,太多了!现在,它的工作速度提高了10倍(当然是索引)。
public int GetTotal(DateTime d)
{
using (rdbyDataContext2 Context = new rdbyDataContext2())
{
var q1 = from qu in Context.SearchRequests
where
qu.search_date.Date = d.Date
orderby qu.user_name
select qu;
return q1.Count();
}
}