Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 实体框架,函数导入,返回类型:无。。返回整数?_Entity Framework_Return Type - Fatal编程技术网

Entity framework 实体框架,函数导入,返回类型:无。。返回整数?

Entity framework 实体框架,函数导入,返回类型:无。。返回整数?,entity-framework,return-type,Entity Framework,Return Type,我在我的存储中添加了一个存储过程,它在我的模型中创建了一个函数导入,并且我将返回类型设置为None,因为存储过程只执行插入或更新 然而,生成的ObjectContext方法返回一个int,而不是void。当我执行这个方法时,它工作了,这个值是-1 这是怎么回事 [编辑] 存储过程很简单,如下所示: SET NOCOUNT ON UPDATE Notes SET vchType = @Type, iPriority=5 WHERE iNoteNumber = @NoteID 不应该返回任何内容

我在我的存储中添加了一个存储过程,它在我的模型中创建了一个函数导入,并且我将返回类型设置为None,因为存储过程只执行插入或更新

然而,生成的ObjectContext方法返回一个int,而不是void。当我执行这个方法时,它工作了,这个值是-1

这是怎么回事

[编辑]

存储过程很简单,如下所示:

SET NOCOUNT ON 
UPDATE Notes SET vchType = @Type, iPriority=5 WHERE iNoteNumber = @NoteID
不应该返回任何内容,如果我执行到一个变量中,我认为它应该是零,就像在SSMS中:

    DECLARE @return_value int

    EXEC    @return_value = [CNRD].[UpdateNoteType]
            @NoteID = 12345,
            @Type = N'REGULAR'

    SELECT  'Return Value' = @return_value
    ------------------------------------------
    [ Return Value ]
    0
以下是它的映射方式:


非查询方法,请参见此处的备注:

对于UPDATE、INSERT和DELETE语句,返回值为 受命令影响的行数。当触发器存在于 在插入或更新表时,返回值包括数字 受插入或更新操作和编号影响的行数 受一个或多个触发器影响的行数。对于所有其他类型的 语句,返回值为-1。如果发生回滚,则返回 值也为-1


你能展示一下代码,或者是你如何导入函数的屏幕截图吗?我会抓拍一些屏幕截图并编辑问题。这与EntityFramework无关。OP应该如何使用此方法?链接解释并引用“对于所有其他类型的语句,返回值为-1。如果发生回滚,返回值也为-1。”实体框架只是返回它从SP获得的值。因此我同意它与EF有关。EF被要求调用一个SP,SP很可能返回-1,当您询问“当我执行此方法时,它有效,此值为-1。”时,它似乎与我相关。请尝试帮助解释。好的。我认为你的回答不清楚。在EF中,当您导入SP时,您决定它应该返回什么。如果您选择
None
则无论SP实际返回的是什么,包装器EF都将返回
void
。我不确定Jens的情况,因此这仍然是一个有效的问题。我只是觉得标准的SQL非查询命令结果最有可能是您的价值来源。我直接调用这些命令,而不是通过EF。