SiteAzure模板中如何获取模型数据集
想要获取模型数据集的时候往往我们直接用列表标签完成,但有些时候当列表标签这种单次循环不能满足我们需要的时候,通常我们会想到使用通用标签(像文章焦点图这类)。
GetList(String, Int32, Int32, Boolean, Boolean, String, Boolean, Expression, Boolean)
GetPicArticle(Int32, Node, Boolean, String, String, String, Boolean)
....
但近期因为系统这些参数变化比较大,属性位置不对话很容易导致报错等调试的麻烦。而且有些运用直接模板上写的话比较方便清晰,譬如循环、统计等。
除了模型服务层这种传参运用,还有另一种通过前台服务层GetAll()这种方式
//获取所有数据
var articles =new ArticleService.GetAll().ToList();
加上查询条件
//获取节点下所有数据集
var articles =new ArticleService.GetAll().Where(x => x.NodeId ==123).ToList();
//获取节点下所有已发布的数据集
var articles =new ArticleService.GetAll().Where(x => x.NodeId == 123 && x.Status == Status.Approve).ToList();
限制输出数量
var articles =new ArticleService.GetAll().Where(x => x.NodeId == 123 && x.Status == Status.Approve).Take(2).ToList();
加上排序
// 根据发布时间倒序。
var articles =new ArticleService.GetAll().Where(x => x.NodeId ==123 ).OrderByDescending(x => x.PublishTime).Take(2).ToList();
// 根据Id正序
var articles =new ArticleService.GetAll().Where(x => x.NodeId ==123 ).OrderBy(x => x.ContentId).Take(2).ToList();
数据量统计
var count =new ArticleService.GetAll().Where(x => x.NodeId ==123 && x.Status == Status.Approve ).Select(x => x.ContentId).ToList().Count();