我已经在我的商店中添加了一个存储过程,它在我的模型中创建了一个函数导入,并且我将返回类型设置为无,因为存储过程仅执行插入或更新。
然而,生成的ObjectContext方法返回一个int,而不是void。当我执行此方法,并且它工作时,此值为-1。
这里发生了什么?
[编辑]
SPROC很简单,看起来像这样:
SET NOCOUNT ON
UPDATE Notes SET vchType = @Type, iPriority=5 WHERE iNoteNumber = @NoteID
DECLARE @return_value int
EXEC @return_value = [CNRD].[UpdateNoteType]
@NoteID = 12345,
@Type = N'REGULAR'
SELECT 'Return Value' = @return_value
------------------------------------------
[ Return Value ]
0
以下是它的映射方式:
答案 0 :(得分:1)
非查询方法,请参见此处的备注:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx
对于UPDATE,INSERT和DELETE语句,返回值为 受命令影响的行数。当a上存在触发器时 正在插入或更新的表,返回值包括数字 受插入或更新操作影响的行数和数字 受触发器或触发器影响的行数。对于所有其他类型的 语句,返回值为-1。如果发生回滚,则返回 值也是-1。