日期:2014-05-17  浏览次数:20695 次

magaView.HasMonth = db.Library.GroupBy(a => a.TimeBook.Month).Select(a => a.Key)

我是要查询表里边 时间字段TimeBook,所有的月份列表,包括年份,下边只有月份,还是int类型; 能不能包含年月的时间类型

我查询了下定义:
        // 摘要:
        //     获取此实例所表示日期的月份部分。
        //
        // 返回结果:
        //     月组成部分,表示为 1 和 12 之间的一个值。
        public int Month { get; }


magaView.HasMonth = db.Library.GroupBy(a => a.TimeBook.Month).Select(a => a.Key).ToList(); 

------解决方案--------------------
db.Library.GroupBy(a => new DateTime(a.TimeBook.Year, a.TimeBook.Month, 1)).Select(a => a.Key).ToList();
 
------解决方案--------------------
GroupBy(a => a.TimeBook.ToString("yyyy-MM"))
------解决方案--------------------
var qurey = from row in db.Library.AsEnumerable()
                        group row by row.timeBook
                            into g
                            select new
                            {
                                dd = string.Format(@"{0}-{1}", g.Key.Year, g.Key.Month)
                            };
------解决方案--------------------
优化一下。。。
db.Library.Where(a => a.CategoryID == categoryId).GroupBy(a => a.DateTime.Year * 12 + a.DateTime.Mouth - 1).Select(a => a.Key).ToList().Select(a => new DateTime((int)Math.Floor(t / 12.0), t % 12 + 1, 1)).ToList();