如何根据日期只返回视图的最后10个字段?

本文关键字:最后 10个 字段 视图 返回 何根 日期 | 更新日期: 2023-09-27 18:02:10

在这个项目中有两个sql表。第一个表是Cars,第二个表是mobile。这两个表各有一个ExpirationDate字段。我想在一个视图中显示这两个表中基于过期日期的最后10个字段。

public ActionResult Index(int ?page)
{
      var result = db.Mercedes.Where(m => m.Username == User.Identity.Name).OrderByDescending(m=>m.CurrentDate);
      var result2 = db.Mobiles.Where(m => m.UserName == User.Identity.Name).OrderByDescending(m => m.CurrentDate);
      int pageSize = 6;
      int pageNumber = (page ?? 1);
      return View(result.ToPagedList(pageNumber, pageSize));              
}

如何根据日期只返回视图的最后10个字段?

您需要做的是重构这两个查询以返回相同的类。

然后组合两个IQueryable集合,并对第三个组合的结果集执行Take(10)。

的例子:

var result = from m in db.Mercedes 
             where m.Username == User.Identity.Name  
             orderby m.CurrentDate descending 
             select new car(){param1 = m.param1/*etc*/};
var result2 = from m in db.Mobiles 
              where m.Username == User.Identity.Name  
              orderby m.CurrentDate descending 
              select new car(){param1 = m.param1/*etc*/};
var combinelist = result.Concat(result2)
.OrderByDescending(m=>m.CurrentDate)
.Take(10)
.ToList();

您可以使用LINQ Concat和ToList方法:

        var result = db.Mercedes.Where(m => m.Username == User.Identity.Name).OrderByDescending(m=>m.CurrentDate);
        var result2 = db.Mobiles.Where(m => m.UserName == User.Identity.Name).OrderByDescending(m => m.CurrentDate);
        var combinelist= result.Concat(result2).ToList();