1

在我的表中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......我该如何解决这个问题,任何人都可以在这里帮助我,

4

1 回答 1

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

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

于 2012-06-29T18:29:42.693 回答