2014-04-01 133 views
1

Linq to Entity的新手,尝试获取过去六个月内收到的所有记录。我花了几个小时试图让这个工作。任何援助将不胜感激。当我调用'限制'变量时,它将被分配日期01/01/0001。任何援助将不胜感激。如果我注释掉'where'子句,它就会起作用;不过,我只需要在最近六个月内对它进行排序。获取过去六个月内收到的所有记录

在此先感谢。

JobSeekersEntities context = new JobSeekersEntities(); 

var limit = DateTime.Today.AddMonths(-6); 

     var query = from c in context.Applications 
        where c.received > limit 
        orderby c.received descending 
        select new { c.firstName, c.middleName, c.lastName, c.street, c.city, c.state, c.zip, c.position }; 

     var results = query.Take(25).ToList(); 

     applicationDataGrid.DataContext = results; 
+1

当你说你调用极限变量你是什么意思?我在一些测试代码中复制了限制变量,似乎计算得很好。 –

+0

当我使用调试器并停止它。它将日期显示为值为{1/1/0001 12:00:00 AM}。 –

+0

执行'var limit = DateTime.Today.AddMonths(-6); Console.WriteLine(限制);'它为我显示'01.10.2013 00:00:00'。尝试打印出你的极限变量。也许你必须清理旧的二进制文件重新编译和调试? – BlueM

回答

2

如果停止调试器的行“var limit =”,您将获得该值。您需要按F10键跳过该代码,然后查看值,这将是正确的。必须让该线路运行,以便分配极限。 Var在这种情况下是DateTime,它是一个值类型,所以它有一个默认值。我可以看到这是误导。