EF6中的嵌套查询

时间:2016-11-30 20:39:23

标签: sql entity-framework linq asp.net-mvc-5 entity-framework-6

我有一个查询,我喜欢用于分页。使用dapper,我可以进行下面的查询并使用SplitOn,它允许我将SplitOn列左侧的结果分成一个对象,将SplitOn列右侧的结果分成第二个对象。这允许我做的是获得总记录数以及"指定"的记录。仅限页面

SELECT *             
FROM (
    SELECT
        *,1 as SplitOn,
        (ROW_NUMBER() OVER(ORDER BY Id )) AS RowNum, COUNT(*) over() as TotalRows
            FROM ( 
                SELECT Id, FirstName, LastName FROM Customer
            ) AS FirstQuery
    ) AS TEMP 
WHERE RowNum BETWEEN 1 + ((@Page - 1) * @PageSize) AND @Page * @PageSize

如果你在第6页的SQL中运行,你会得到:

Id FirstName LastName SplitOn RowNum TotalRows
61    John     Luke      1      1      120
62    Jane     Sky       1      2      120
63    Boby     Doe       1      3      120
64    Sam      Ace       1      4      120
65    Dany     Table     1      5      120
etc...

我正在尝试用EF6完成同样的工作,但我不能为我的生活找出如何将该查询转换为等效的LinQ表达式。

我意识到使用EF6可能无法实现SplitOn,因此我可以使用单个对象解决这个问题,但我仍然无法弄清楚如何使用LinQ进行查询。

0 个答案:

没有答案