渡された値で割ったレコードの総数を単純に返すストアド プロシージャがあります。これは、Web サイトのページネーションを支援するためです。
ただし、エンティティ フレームワークを使用してそのストアド プロシージャにバインドしています-1
が、すべての呼び出しに対して返されます。SQL Management Studio を使用してストアド プロシージャに問い合わせると、正しい値が返されます。
私のストアドプロシージャは次のようになります。
CREATE PROCEDURE [dbo].[GetAuditRecordPageCount]
@Count INTEGER
AS
RETURN ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1
C# でのエンティティ フレームワークへの私の呼び出しは次のとおりです。
int pageCount;
using (Entities entities = new Entities())
{
pageCount = entities.GetAuditRecordPageCount(count);
}
このように C# コードを書くのは正しいですか?
コメントの要求に従って、EF によって生成される SQL は次のとおりです。
exec [dbo].[GetAuditRecordPageCount] @Count=100