Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较两个日期时间变量_C#_.net_Linq To Sql - Fatal编程技术网

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();
    }
}