映射存储过程时“不支持的参数”? (EF)

时间:2011-12-11 19:22:36

标签: asp.net entity-framework stored-procedures

我有一个存储过程,我返回新的ID号。代码如下所示:

ALTER PROCEDURE [dbo]. [Save Contact]

@FirstName varchar (50),
@LastName varchar (50),
@Email varchar (50)
AS
BEGIN
- SET NOCOUNT ON added to Prevent extra result sets from
- Interfering with SELECT statements.
SET NOCOUNT ON;

INSERT INTO Contacts (FirstName, LastName, Email)
VALUES (@FirstName, @LastName, @Email)

SELECT SCOPE_IDENTITY() as newid
END

当我尝试映射存储过程时,出现以下错误:

  

错误1错误2047:映射函数绑定说明符函数demoModel.Store.SaveContact,其参数不受支持:id。输出参数只能通过RowsAffectedParameter属性进行映射。使用结果绑定从函数调用返回值。

enter image description here

这里有谁能看到我做错了什么?

需要更多代码,请与我们联系。

1 个答案:

答案 0 :(得分:0)

使用上面的SQL删除id作为insert语句的参数。它不需要。要获得SCOPE_IDENTITY(),您只需要在结果列绑定中映射newid

还要确保Result Column Bindings中的列名与存储过程返回的情况相同。

来源:http://blogs.msdn.com/b/adonet/archive/2008/03/26/stored-procedure-mapping.aspx