public static List<Blog> GetBlogsBy(this IQueryable<Blog> query,
int? blogClassID, DateTime? createDateTimeStart, DateTime? createDateTimeEnd) {
if (query == null) throw new ArgumentNullException("query");
var q = query.AsQueryable();
if (blogClassID.HasValue) q = q.Where(b => b.BlogClassID == blogClassID.Value);
if (createDateTimeStart.HasValue) q = q.Where(b => b.CreateDateTime > createDateTimeStart.Value);
if (createDateTimeEnd.HasValue) q = q.Where(b => b.CreateDateTime < createDateTimeEnd.Value);
return q.OrderByDescending(b => b.CreateDateTime).ToList();
}
查詢邏輯屬於業務邏輯層 (Business),定義於 BlogExtension 類別,UI 層僅呼叫此方法並綁定顯示。