Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么实体框架调用我的存储过程但返回不正确的值?_C#_Asp.net_Sql Server_Entity Framework - Fatal编程技术网

C# 为什么实体框架调用我的存储过程但返回不正确的值?

C# 为什么实体框架调用我的存储过程但返回不正确的值?,c#,asp.net,sql-server,entity-framework,C#,Asp.net,Sql Server,Entity Framework,我有一个存储过程,它只返回记录总数除以传入的值。这有助于在网站上分页 但是,我正在使用实体框架绑定到该存储过程,它将为所有调用返回-1。当我使用SQL Management Studio查询存储过程时,它返回正确的值 我的存储过程如下所示: CREATE PROCEDURE [dbo].[GetAuditRecordPageCount] @Count INTEGER AS RETURN ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1 CR

我有一个存储过程,它只返回记录总数除以传入的值。这有助于在网站上分页

但是,我正在使用实体框架绑定到该存储过程,它将为所有调用返回
-1
。当我使用SQL Management Studio查询存储过程时,它返回正确的值

我的存储过程如下所示:

CREATE PROCEDURE [dbo].[GetAuditRecordPageCount]
@Count INTEGER
AS
RETURN ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1
CREATE PROCEDURE [dbo].[GetAuditRecordPageCount]
@Count INTEGER
AS
declare @retVal int
set @retVal = ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1
select @retVal
我对C#中实体框架的呼吁是:

我这样写C代码对吗

根据注释中的请求,EF生成的SQL为:

exec [dbo].[GetAuditRecordPageCount] @Count=100
你试过了吗?

我认为您的程序如下所示:

CREATE PROCEDURE [dbo].[GetAuditRecordPageCount]
@Count INTEGER
AS
RETURN ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1
CREATE PROCEDURE [dbo].[GetAuditRecordPageCount]
@Count INTEGER
AS
declare @retVal int
set @retVal = ((SELECT COUNT(Id) FROM AuditRecords) / @Count) + 1
select @retVal
在c代码中:


不要忘记将“Scalars:Int32”放在编辑函数导入屏幕中。

你的GetAuditRecordPageCount方法中有什么?你能用SQL事件探查器查看EF生成了什么SQL吗?@IronMan84这只是EF自动生成的代码。@DaveShaw现在在问题文本中:)我做了类似的事情。它运行良好,是“正确的方式”。非常感谢。