Paging in Entity Framework

前端 未结 6 1289
情书的邮戳
情书的邮戳 2020-12-03 00:56

In Entity Framework, using LINQ to Entities, database paging is usually done in following manner:

int totalRecords = EntityContext.Context.UserSet.Count;
var         


        
6条回答
  •  难免孤独
    2020-12-03 01:48

    ALTER proc [dbo].[GetNames]
        @lastRow bigint,
        @pageSize bigint,
        @totalRowCount bigint output
    as
    begin
    
    select @totalRowCount = count(*) from _firstNames, _lastNames
    
    select
        FirstName,
        LastName,
        RowNumber
    from
    (
        select
            fn.[FirstName] as FirstName,
            ln.[Name] as LastName,
            row_number() over( order by FirstName ) as RowNumber
        from
            _firstNames fn, _lastNames ln
    ) as data
    where
        RowNumber between ( @lastRow + 1 ) and ( @lastRow + @pageSize )
    
    end 
    

    There is no way to get this into one call, but this works fast enough.

提交回复
热议问题