こんにちは私は最近エンティティフレームワークとlinqを学び、このストアドプロシージャを変換するように求められました。
CREATE PROCEDURE [dbo].[GetBooks]
@numberOfBooksOnPage int,
@pageNumber int
AS
BEGIN
WITH AllBooks AS
(
SELECT ROW_NUMBER() OVER(ORDER BY Id) AS RowId,
Id , Name , Author , Description , PublicationDate , CategoryId
FROM Books
)
SELECT Id , Name , Author , Description , PublicationDate , CategoryId
FROM AllBooks
WHERE RowId BETWEEN ((@pageNumber - 1) * @numberOfBooksOnPage) + 1 AND @pageNumber * @numberOfBooksOnPage
ORDER BY RowID
END
これまでのところ、ページごとに表示される本の総数を取得することしかできませんでしたが、pageNumberを介して本を取得する方法を見つける必要があります。
これは私がこれまでに持っているものです:
var books = bookContext.Books.Take(numberOfBooksOnPage);
では、linqクエリのストアドプロシージャに記述されている内容をどのように表すことができますか?