使用EntityFramework获取每月数据

时间:2012-06-29 10:09:51

标签: c# asp.net linq entity-framework

在我的表TimeTable中,我有Title,FromDate,ToDate等列,我试图按月收集结果。为此,我尝试使用像

这样的实体框架
DataObject.Entities entities=new DataObject.Entities();

DataObject.TimeTable timeTable     
            = entities.TimeTables.First(t=>t.FromDate.Month<=DateTime.Now.Month 
                                && t.ToDate.Month>DateTime.Now.Month)
{ 
     //
}

但是在这里,它在t.FromDate.Month显示错误显示错误,如<System.DateTime> doesn't contain definition for Month ......如何解决这个问题,任何人都可以帮助我,

1 个答案:

答案 0 :(得分:2)

问题在于你使用的是.Net框架中的方法而linq无法翻译。为了解决这个问题,尝试了这个

var example = entities.TimeTables.AsEnumerable().Where(
                            t=>t.FromDate.Month<=DateTime.Now.Month 
                            && t.ToDate.Month>DateTime.Now.Month);

这也可以起作用

var example = entities.TimeTables.ToList().Where(
                            t=>t.FromDate.Month<=DateTime.Now.Month 
                            && t.ToDate.Month>DateTime.Now.Month);

注意:第二个会强制您获取表格的所有记录,如果行数过多会导致性能下降