假设我有一个名为 DailyVisitorSummary 的持久类,它描述了每个网页每天有多少访问者。为简单起见,假设我们将日期表示为纯整数。
现在我想创建一个查询来检索特定日期的数据,以及前几天和后几天的数据。我所知道的是,同一个网页肯定最多会有一个前一天和后一天的数据记录,所以我可以编写一个 SQL 查询(MySQL 语法),如:
SELECT c.*,p.*,n.* from DailyVisitorSummary c
LEFT JOIN DailyVisitorSummary p ON p.WebPage = c.WebPage AND p.Day = c.Day - 1
LEFT JOIN DailyVisitorSummary n ON n.WebPage = c.WebPage AND n.Day = c.Day + 1
WHERE c.Day = 453;
我想用结果填充以下视图模型:
public class VMDailyVisitors3Day {
public VMDailyVisitors CurrentDay { get; set; }
public VMDailyVisitors PreviousDay { get; set; }
public VMDailyVisitors NextDay { get; set; }
}
public class VMDailyVisitors {
public int Day { get; set;; }
public int WebPageID { get; set; }
public int VisitorCount { get; set; }
}
如何使用 Linq to XPO 进行此查询?我需要一个 LINQ 解决方案,因为我需要在服务器模式 MVC GridView 中使用结果。