如何根据日期只返回视图的最后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));
}
您需要做的是重构这两个查询以返回相同的类。
然后组合两个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();