EF分组查询与视图显示

业务需求:页面显示的文章按照年份分组并按照年份倒序排列。

控制器代码实现:

public class ArticleController : Controller
    {
        private DataContext db = new DataContext();

        //
        // GET: /Article/

        public ActionResult Index()
        {
            //var articles = from a in db.Articles group a by a.CreateTime.Year into aa orderby aa.Key descending select aa;
            return View(db.Articles.GroupBy(a => a.CreateTime.Year).OrderByDescending(a => a.Key).ToList());
        }
}

视图部分:

引入类型:@model IEnumerable<IGrouping<int, _116.Models.ArticleModels>>

<h2><small>文章存档</small></h2>
            <div>
                @foreach (var items in Model)
                {
                    <h3 class="h3"><small>@items.Key</small></h3>
                    <ul>
                        @foreach (var item in items)
                        {
                            <li class="list-group-item-text">
                                <a href="/Article/Details/@item.ObjectID">@Html.DisplayFor(modelItem => item.ObjectTitle)</a>
                                <div class="meta">
                                    <time>@item.CreateTime.ToString("yyyy-MM-dd")</time>
                                    <i class="glyphicon glyphicon-eye-open eye"></i>
                                    <span>(@Html.DisplayFor(modelItem => item.VisitedCount))</span>
                                </div>
                            </li>
                        }
                    </ul>
                }
            </div>

页面效果:


原文地址:https://www.cnblogs.com/wangzl1163/p/6341156.html